2024/09 23

[Python] 13565번 침투

✏️ 문제 문제 파악상하좌우로 인접한 흰색 격자들로 전달될 수 있으므로 다음과 같이 방향 배열을 구성했다.d = [(1, 0), (0, 1), (-1, 0), (0, -1)] 문제에서 전류가 섬유 물질의 가장 바깥쪽 흰색 격자들에만 공급된다고 했으므로 첫 째줄을 돌면서 첫 째줄의 흰색 격자들과 인접해 있는 격자들만 전류가 흐른 것으로 바뀌도록 코드를 짜면 된다.또한 나는 안쪽까지 침투된 건지 아닌 지에 대한 기준을 잘 이해 못했었는데 찾아보니 다들 맨 아래줄의 흰색 격자가 전류가 흘렀는 지 아닌 지를 구분하여 출력하는 것을 볼 수 있었다. 알고리즘그래프 이론그래프 탐색너비 우선 탐색깊이 우선 탐색  코드from collections import dequem, n = map(int, input().spli..

PS/백준 2024.09.05

[Python] 2210번 숫자판 점프

✏️ 문제  문제 파악처음에 DFS 함수를 얼마나..? 돌려야할 지 몰라서 해멨다... 그냥 각 위치에서 한번씩만 돌리면 되는 거 였삼.. 씁 그리고 첨에  for (배열명) in (변수)  를 사용해서 중복 방지를 하려고 했는데 set() 이라는 자동으로 중복은 저장이 안되는 아주 좋은 집합 자료형이 있다! (뒤늦게 기억난 건 비밀) 알고리즘그래프 이론그래프 탐색깊이 우선 탐색브루트포스 알고리즘  코드import sysinput = sys.stdin.readlinesys.setrecursionlimit(10**6)graph = [list(map(int, input().split())) for _ in range(5)]d = [(1, 0), (0, 1), (0, -1), (-1, 0)]nums = se..

PS/백준 2024.09.02

[Python] 1189번 컴백홈

✏️ 문제  문제 파악한 방향으로 갈 수 있는 만큼 끝까지 갔다가 더 갈 곳이 없다면 이전 위치로 돌아가면서 한수의 집을 도착하는 모든 경로를 찾는 백트래킹을 사용하는 문제이다.백트래킹 문제는 BFS와 DFS 둘 다 사용해서 풀 수 있지만 특징상 DFS로 푸는 것이 편하다.한수는 상하좌우로 이동할 수 있으므로 방향 배열을 다음과 같이 정의했다.d = [(1, 0), (0, 1), (0, -1), (-1, 0)] 그리고 깊이 탐색을 하다가 더 갈 곳이 없다면 이전 위치로 돌아가면서 들렀던 위치에 대한 방문을 안했다고 수정해야 하는데 그 이유는 현재 경로와 다른 경로로도 탐색해야 하기 때문이다.visited[x][y] = 0 ! 문제에서 한수의 위치는 왼쪽 아래, 한수의 집 위치는 오른쪽 아래라고 했으므로 ..

PS/백준 2024.09.02