99클럽 스터디 7일차 TIL + 그래프이론(프로그래머스 모음사전)오늘의 학습 키워드순열과 조합(itertools)product 함수문자열 처리공부한 내용 본인의 언어로 정리하기product 풀이itertools.product()주어진 배열에서 중복을 허용하여 특정 길이의 모든 조합을 만들어내는 함수repeat 파라미터로 조합의 길이를 조절문자열 처리join() 함수를 사용하여 튜플로 된 문자들을 하나의 문자열로 합치기리스트에 저장된 모든 가능한 조합들을 정렬하여 사전 순서 만들기import itertoolsdef solution(word): alphabet = list("AEIOU") a_list = [] for i in range(5): for k in list(itert..
99클럽 코테 스터디 6일차 TIL + 이분탐색(백준 2805 나무 자르기)1. 오늘의 학습 키워드이분탐색백준 2805 나무자르기2. 공부한 내용2. 1. 이분 탐색을 활용해 높이 찾기절단기 높이를 이진 탐색으로 찾아가는 방식이분탐색의 기본적인 틀을 기억했다면 쉽게 풀이할 수 있음left, right, mid 변수 활용left = 0right = 10**9while left = M: answer = mid # 가능한 값 저장 left = mid + 1 # 더 큰 값 확인 else: right = mid - 1 # 더 작은 값 확인2.2 나무 자르기 로직 구현각 나무별 잘린 길이 계산 방법누적 합 계산 및 조기 종료 조건 처리불필요한 방법 방지를 위한 bre..
99클럽 코테 스터디 5일차 TIL + BFS(백준 24444)오늘의 학습 키워드- BFS(너비 우선 탐색)- Queue, Deque- 방문 순서 처리공부한 내용# 항해99 Day5# 백준 24444번 알고리즘 수업 - 너비 우선 탐색from collections import dequeimport sysinput = sys.stdin.readlineN, M, R = map(int, input().split())graph= [[] for _ in range(N+1)]visited = [0] * (N+1) for _ in range(M): u, v = map(int, input().split()) graph[u].append(v) graph[v].append(u)# 오름차순 방문을 위한 정렬..
오늘의 학습 키워드DFS백준 24479(알고리즘 수업 - 깊이 우선 탐색 1) 공부한 내용DFS 개념그래프에서 깊이를 우선으로 탐색하는 알고리즘시작 정점에서 다음 분기로 넘어가기 전에, 해당 분기를 완벽하게 탐색해야 함접근 방법DFS의 핵심인 visited를 활용. 현재 정점을 방문 처리 하고 -> 다른 정점을 확인, 그리고 방문 수서 숫자를 늘려주는 것이 핵심핵심 로직 설명visited 배열로 방문 순서 관리인접 리스트를 그래프로 표현(graph = [[] for _ in range(N+1)]0부터 계산하는 것이 아니니까 N+1오름차순 방문을 해야하기 때문에 그래프를 만들고 sort로 정렬재귀를 통해서 DFS를 구현재귀 깊이 제한을 늘려야지 RuntimeError가 발생하지 않음!import syssy..
오늘의 학습 키워드이분탐색프로그래머스 입국심사공부한 내용문제 이해n명의 사람이 입국심사를 받아야 함각 심사관마다 심사하는데 걸리는 시간이 다름모든 사람이 심사를 받는데 걸리는 최소 시간을 구해야 함접근 방법이분탐색을 통해 최적의 시간을 찾아가는 방식 사용탐색 범위최소 시간(left): 1최대 시간(right): 가장 긴 심사시간 × 인원수핵심 로직 설명중간값(mid) 시간 동안 처리할 수 있는 총 인원 계산각 심사관별로 주어진 시간 동안 처리 가능한 인원을 합산처리 가능 인원이 목표 인원보다 많으면 시간을 줄임처리 가능 인원이 목표 인원보다 적으면 시간을 늘림# 항해 99 Day 3# 프로그래머스 입국심사# 이분탐색을 통해서 총 걸리는 시간을 점점 좁혀나가는 형식으로 푸는 문제def solution(n,..