난이도 : D4
문제번호 : 1219
※ 저의 풀이가 무조건적인 정답은 아닙니다.
다른 코드가 좀더 효율적이고 좋을 수 있습니다.
다른사람들의 풀이는 언제나 참고만 하시기 바랍니다.
문제 주소 및 출처입니다.
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
목차
1. 문제 설명
2. 문제 해석
3. 소스 코드
1. 문제 설명
그림과 같이 도식화한 지도에서 A도시에서 출발하여 B도시로 가는 길이 존재하는지 조사하려고 한다. ![]()
|
제한
출발점은 0, 도착점은 99으로 표현된다. 정점(분기점)의 개수는 98개(출발점과 도착점 제외)를 넘어가지 않으며, 한 개의 정점에서 선택할 수 있는 길의 개수도 2개를 넘어가지 않는다. 아래 제시된 가이드 라인은 제안사항일 뿐 강제사항은 아니다. |
입력
각 테스트 케이스의 첫 줄에는 테스트 케이스의 번호와 길의 총 개수가 주어지고 그 다음 줄에는 순서쌍이 주어진다. |
출력
# 부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 테스트 케이스에 대한 답을 출력한다. |
예시
입력 | 출력 |
홈페이지 참고 | 홈페이지 참고 |
2. 문제풀이
이전에 풀었던 그래프 경로와 같은 타입의 문제이다. (mungto.tistory.com/142) |
3. 소스코드
# D4 1219 길찾기
def dfs(node_index, visited, nodes):
visited[node_index] = 1
for node in nodes[node_index]:
if visited[node] != 1:
dfs(node, visited, nodes)
for t in range(10):
_, E = map(int, input().split())
nodes = [ [] for _ in range(100) ]
input_datas = list(map(int, input().split()))
for i in range(0, len(input_datas), 2):
start = input_datas[i]
end = input_datas[i+1]
nodes[start].append(end)
S, G = 0, 99
visited = [ 0 for _ in range(100)]
dfs(S, visited, nodes)
answer = 0
if visited[G] == 1:
answer = 1
print('#{} {}'.format(t+1, answer))
|
'코딩테스트 > SWExpertAcademy' 카테고리의 다른 글
이진힙 Python(SW Expert Academy) (0) | 2021.04.06 |
---|---|
사칙연산 Python(SW Expert Academy) (0) | 2021.04.05 |
오목 판정 Python(SW Expert Academy, SWEA) (0) | 2021.02.23 |
진기의 최고급 붕어빵 Python(SWEA) (0) | 2021.02.21 |
현주의 상자 바꾸기 Python(SWEA) (0) | 2021.02.19 |
댓글