반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 프로그래밍
- 자바
- 코드
- 코딩
- 프로그래머스 파이썬
- 2022년 정보처리기사 실기 가답안
- 자료구조
- 코딩테스트
- 토마토
- 2022년 정보처리기사 실기
- 백준
- 정보처리기사 실기
- 파이썬
- BFS
- 프로그래머스
- 그리디
- dfs
- 백준 N-Queens
- it
- 백준 그래프 이론 파이썬
- 정보처리기사 실기 시험
- 백준 백트랙킹
- 알고리즘
- 백준 토마토 파이썬
- 정보처리기사
- 2022년 정보처리기사 실기 1회 가답안
- python
- BOJ
- 백준 백트랙킹 파이썬
- 백준 그래프 탐색 파이썬
Archives
- Today
- Total
코딩,안되면 될때까지
[백준]18352- 특정거리의 도시 찾기 본문
728x90
반응형
<문제>
https://www.acmicpc.net/problem/18352
<풀이>
- 시작위치를 queue에 삽입한다.
- distance배열(시작위치에서 각 노드까지의 거리를 저장하는 배열)을 선언한다.
- distance배열에서 시작위치에 해당하는 인덱스의 값을 0으로 설정한다.
- queue에서 원소를 추출한다음 각 인접노드를 queue에 삽입한다.
- distance배열에서 각 노드에 해당하는 인덱스의 값을 갱신한다.(이동거리+1)
- 위 4,5번과정을 queue가 빌때까지 반복한다.
- distance배열에서 특정거리에 해당하는 값을 원소로 갖는 인덱스를 출력한다.
<코드-파이썬>
from collections import deque
import sys
n,m,dist,start = map(int,sys.stdin.readline().split())
graph = [[] for _ in range(n+1)]
distance = [-1]*(n+1)
for _ in range(m):
a,b = map(int,sys.stdin.readline().split())
graph[a].append(b)
def bfs(n,k):
answer = []
queue = deque()
queue.append(n)
distance[n] = 0
while queue:
now = queue.popleft()
for i in graph[now]:
if distance[i] == -1:
queue.append(i)
distance[i] = distance[now]+1
if distance[i] == k:
answer.append(i)
if len(answer == 0):
print(-1)
else:
answer.sort()
for i in answer:
print(i,end='\n')
# Check = False
# for i in range(1,len(distance)):
# if distance[i] == k:
# print(i)
# Check = True
# if Check == False:
# print(-1)
bfs(start,dist)
728x90
반응형
'백준 > 백준-파이썬' 카테고리의 다른 글
[백준-14502번-연구소] - 파이썬 (4) | 2022.03.08 |
---|---|
[백준]2667-단지번호붙이기 (8) | 2022.03.06 |
2178-미로탈출 (0) | 2022.03.05 |
1260-DFS와 BFS (2) | 2022.03.03 |
1715-카드 정렬하기 (0) | 2022.03.01 |
Comments