BFS DFS
import sysfrom collections import defaultdictdef dfs(x, y, house_count): # 현재 위치를 방문 처리 visited[(x, y)] = True house_count[0] += 1 # 상하좌우 방향 정의 directions = [(-1, 0), (1, 0), (0, -1), (0, 1)] # 상하좌우로 이동하며 연결된 집 찾기 for direction in directions: nx, ny = x + direction[0], y + direction[1] if 0 import sysfrom collections import deque, defaultdictdef bfs(x, y): #..
2024. 6. 8.
잘못 작성한 요세푸스 문제
https://www.acmicpc.net/problem/1215 k가 37인 경우를 보면,첫째, k // i의 값이 37, 18, 12, 9,7, 6, 5, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 인데,이 값과 나머지 값의 패턴이 상관있어 보임.둘쨰, 피크를 이루다가 감소하는 구간에서 감소하는 기울기는 그 구간의 k//i 값임.셋째, k // i의 값의 구간별 변화량을 보면 아래와 같은데, 이것은 반대편 구간의 길이와 같음. 즉, 구간 시작 구간의 i의 개수와 같음. (마지막은 0으로 간주) 1 × 372 × 183 × 124 × 95 × 76 × 67 × 59 × 412 × 318..
2024. 5. 27.
🐨BOJ#5582]공통 부분 문자열
시간 초과가 나서 파이파이로 돌렸더니 틀렸대서 살펴보니 dp탐색 범위가 틀렸음^^;;(마지막 행과 열을 빠뜨림)dp로 풀기 위해 대조 테이블을 만들었다.이전까지 연속적으로 같은 개수를 활용하기 위해 패딩으로 0을 좌측과 상단열에 붙였다.시작 위치 배열은[(1, 16), (1, 15), (1, 14), (1, 13), (1, 12), (1, 11), (1, 10), (1, 9), (1, 8), (1, 7), (1, 6), (1, 5), (1, 4), (1, 3), (1, 2), (1, 1), (2, 1), (3, 1), (4, 1), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1), (10, 1), (11, 1)] [(0,y) for y in range(len(string_2)-1,..
2024. 5. 6.