[백준/BOJ] - 1245번 python 풀이 - DFS
문제 자체가 이해가 안 가 블로그를 참고해 분석한 문제 1. 주변 산봉우리보다 커야 한다. -> 주변 산봉우리가 더 크면 trigger을 false로 2. 같은 높이의 산봉우리는 산봉우리 취급 -> 탐색하며 같은 높이의 산봉우리는 방문처리 해버린다. import sys sys.setrecursionlimit(10 ** 6) # dfs 탐색 def dfs(a, b): # 상/하/좌/우/대각선 확인 dx = [1, -1, 0, 0, 1, 1, -1, -1] dy = [0, 0, 1, -1, 1, -1, -1, 1] # 산봉우리인지 체크 global trigger # 탐색 체크 visited[a][b] = True # 8가지 방향 탐색 for i in range(8): x = a + dx[i] y = b + ..
2023. 3. 1.
[백준/BOJ] - 1743번 python 풀이 - DFS
1. 배열의 크기를 입력받고 해당하는 값들을 모두 0으로 초기화 한다. 2. 다음 쓰레기를 1로 설정해놓는다. 3. 2중 for문을 돌리며 탐색을 시작한다. 4. 쓰레기를 방문했을 경우 0으로 변경하여 다시 되돌아가는 경우가 없도록 한다. 5. 주어진 쓰레기 좌표는 0 좌표가 없다고 생각하고 진행하기 때문에 리스트로 표현하는 특성상 해당 좌표에서 x,y 좌표를 각각 -1씩 연산하여 쓰레기 좌표를 정정해준다. import sys input= sys.stdin.readline sys.setrecursionlimit(1000000) storage = [] cnt = 0 dx,dy = (-1,1,0,0),(0,0,-1,1) def dfs(x,y): global cnt cnt += 1 arr[x][y] = 0 f..
2023. 2. 28.
[백준/BOJ] - 2210번 python 풀이 - DFS
1. 숫자판에서 상하좌우로 이동하며 6자리의 수를 완성시키는 것이기 때문에 탐색 문제이다. 2. 만들 수 있는 6자리의 수가 겹칠 가능성이 있으므로 이는 중복된 값을 허용하지 않는 set 자료형을 통해 해결한다. 3. input 받을 때 str형으로 입력받고 숫자 판에 있는 값들을 문자열 + 을 통해 합쳐주고 이를 set 자료형에 저장시켜 겹치는 값들을 예외처리한다. #모든 위치에서 시작할 수 있게 반복문 세팅 #set으로 겹치는 것들 없애 #문자열로 ㄱㄱ import sys input = sys.stdin.readline sys.setrecursionlimit(100000) dx,dy = (-1,1,0,0),(0,0,-1,1) s1 = set([]) def dfs(x,y, number): number ..
2023. 2. 27.