티스토리 뷰
728x90
- 파이썬으로 알고리즘을 풀 때, input을 입력받는 과정에서 input()을 사용하면 시간 초과가 나올 수 있음!
- sys.stdin.readline 을 사용하여 입력값을 받자
- 거리 정보를 받을 때 아래와 같이 리스트의 형식으로 저장하면 특정 노드로부터 시작하는 거리가 있는지 파악하기 수월하다!
- queue를 사용하여 탐색할 노드를 파악한다
for _ in range(M):
a, b = map(int, input().split())
dist[a].append(b)
✅ 문제 풀이 코드
import sys
from collections import deque
input = sys.stdin.readline
N, M, K, X = map(int, input().split())
dist = [[] for _ in range(N+1)]
cost = [-1] * (N+1)
# 거리 정보 입력받기
for _ in range(M):
a, b = map(int, input().split())
dist[a].append(b)
def searchDist(start):
q = deque()
q.append(start)
cost[start] = 0 # 시작하는 노드 거리 초기화
while q:
tmp = q.popleft()
for next in dist[tmp]:
# tmp로부터 출발하는 도로가 있는지 찾는다
if cost[next] == -1: # 방문한적 없는 도시이면
cost[next] = cost[tmp] + 1 # 현재 도시에서의 cost에 + 1 해주기
q.append(next)
searchDist(X)
# 정답 출력하기
flag = True
for i in range(1, N+1):
if cost[i] == K:
print(i)
flag = False
if flag : print(-1)
728x90
'백준' 카테고리의 다른 글
N과 M(1) (0) | 2021.10.28 |
---|---|
C - 백준14501번. 퇴사 (0) | 2020.08.14 |
C++ - 백준 1149번. RGB거리 (0) | 2020.04.20 |
C++ - 백준 1931번. 회의실배정 (0) | 2020.04.17 |
C - 백준 2293번. 동전1 (0) | 2020.04.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 기초
- TypeScript
- axios
- level3
- Hook
- 이코테
- 이것이 취업을 위한 코딩테스트다
- 자바스크립트
- level1
- 파이썬
- 이진탐색
- 상태관리
- React.FC
- CS
- redux
- React
- html
- reactjs
- dfs
- nomadcoder
- 이것이코딩테스트다
- programmers
- JavaScript
- CORS
- 프로그래머스
- 소프티어
- 노마드코더
- css
- 면접을 위한 CS 전공지식 노트
- springboot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함