본문 바로가기

코딩 테스트48

[백준 1987번] 알파벳 문제 풀이 (with Python) - 틀렸습니다. from collections import deque R, C = map(int,input().split()) arr =[] for i in range(R): arr.append(list(input())) passed = [] # 지나간 알파벳 목록 저장 dx = [0, 0, -1, 1] dy = [1, -1, 0, 0] q = deque() def dfs(x,y, cnt): global result result = max(result, cnt) print(passed) q.append((x, y)) while(q): x, y = q.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0.. 2023. 11. 8.
[백준 2668번] 숫자 고르기 문제 풀이 (with Python) 첫번째 줄 집합과 두번째 줄 집합을 만든다. arr을 두번째 줄이라 할때, 1번부터 N번까지 순서대로 돌며, arr[num]이 첫번째 줄 집합에 있는지 확인하여 있다면, 첫번째 줄 집합과 두번째 줄의 동등비교를 한다. 만약 두 집합이 동일하면 answer을 업데이트 해준다. 하지만, 동일하지 않다면, 첫번째 집합과 두번째 집합의 개수가 달라지므로 False를 통해 탐색을 중단한다. first= {1} second= {3} dfs first= {1, 3} second= {1, 3} True first= {2} second= {1} dfs first= {1, 2} second= {1, 3} dfs first= {1, 2, 3} second= .. 2023. 11. 7.
[백준 10026번] 적록색약 문제 풀이 (with Python) 방문하지 않은 구역의 인덱스인 경우, 큐에 넣어준다. 큐의 상하좌우를 순서대로 들러, 방문 하지 않은 구역이면서, 해당 배열의 값과 같은 값인 경우, 큐에 새로운 값을 넣어주고, 해당 배열의 방문 여부를 True로 바꿔준다. N * N 배열을 순서대로 dfs를 돌려, 개수를 세어 출력한다. from collections import deque def dfs(x, y): q.append((x, y)) checked[x][y] = True while q: x, y = q.popleft() checked[x][y] = True for i in range(4): new_x = x + dx[i] new_y = y + dy[i] if 0 2023. 11. 6.
[백준 19237번] 어른 상어 문제 풀이 (1) 배열에 상어 번호와 냄새가 남은 시간을 저장 - arr 배열 다음과 같이 초기 배열이 정해지면 아래처럼 배열에 [상어 번호, 냄새가 남은 시간] 으로 저장한다. [ [[0, 0], [0, 0], [0, 0], [0, 0], [3, 4]], [[0, 0], [2, 4], [0, 0], [0, 0], [0, 0]], [[1, 4], [0, 0], [0, 0], [0, 0], [4, 4]], [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0]] ] (2) 각 상어의 현재 위치 저장 - location 배열 [[], [2, 0], [1, 1], [0, 4], [2, 4]].. 2023. 11. 6.