99클럽 코테 스터디 9일차 TIL + 오늘의 학습 키워드(BFS 백준 7562 나이트의 이동)https://www.acmicpc.net/problem/75621. 오늘의 학습 키워드BFS백준 7562 나이트의 이동2차원 배열에서의 최단 경로 탐색2. 공부한 내용# 나이트가 이동할 수 있는 8가지 방향을 정의dx = [-2, -1, 1, 2, 2, 1, -1, -2]dy = [1, 2, 2, 1, -1, -2, -2, -1]def BFS(start_x, start_y, destination_x, destination_y, I): queue = deque() queue.append((start_x, start_y)) # 체스판 크기만큼의 2차원 배열 생성 graph = [[0] * I..
99클럽 코테 스터디 8일차 TIL + DFS(백준 2644)1. 오늘의 학습 키워드백준 2644 촌수계산DFS2. 공부한 내용 정리2.1. 구현 내용전체적인 구현 구조는 DFS의 기본 틀과 유사그래프 구현: 인접 리스트를 사용하여 각 사람 간의 관계를 양방향으로 저장방문 배열: visited 배열은 방문 체크와 동시에 촌수를 저장하는 용도로 사용DFS 구현:목표 노드 도달 시 현재까지의 촌수 반환연결된 노드들을 재귀적으로 탐색하며 촌수 계산경로가 없는 경우 -1 반환2.2. 전체 코드import sysinput = sys.stdin.readline# 입력 받기n = int(input()) # 전체 사람 수a, b = map(int, input().split()) # 촌수를 계산해야 하는 두 사람m ..
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)# 오름차순 방문을 위한 정렬..