Skip to content

Commit 01e773d

Browse files
committed
[PGS] 로또의최고순위와최저순위 / lv1 / 20min
https://school.programmers.co.kr/learn/courses/30/lessons/77484
1 parent 6e77873 commit 01e773d

File tree

2 files changed

+78
-0
lines changed

2 files changed

+78
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
"""
2+
6/range(1,45+1)
3+
최고 순위, 최저 순위
4+
1. 알수 없는 번호 개수: 0의 개수 => unknown_n
5+
2. 최저 순위 = 6- (1개,0개 == 0 개로 취급, 현재 맞는 개수)
6+
3. 최고 순위 = 6- 현재 맞은 개수
7+
"""
8+
def solution(lottos, win_nums):
9+
answer = []
10+
#1. 0의 개수
11+
correct= 0 ; unknown = 0
12+
#2. 알수 없는 개수, ,현재 맞은 개수
13+
for i in range(len(lottos)):
14+
if lottos[i] == 0 :
15+
unknown += 1
16+
elif lottos[i] in win_nums :
17+
win_nums.remove(lottos[i])
18+
correct+=1
19+
#3. 순위 = 7- 맞은 개수(1개 맞은 개수 == 0개 맞은 개수 = 1로 취급)
20+
for c in [correct+unknown,correct] :
21+
if c == 0 :
22+
c= 1
23+
rank = 7-c
24+
answer.append(rank)
25+
return answer
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
"""
2+
시작 1 ~ N번 node , road : m 개 (cost=1)
3+
최단거리= k인
4+
-> 다익스트라? ....BFS 감사합니다 ㅎ
5+
<BFS>
6+
0. 인접 리스트 graph 정의 , 시작 노드 queue 넣기 & 방문 등록
7+
1.queue 가 빌때 까지
8+
queue에서 꺼낸 n 과 인접한 노드 중 방문 안한 노드
9+
-> queue 넣고 방문 등록
10+
없으면 :
11+
-> queue에서 빼기
12+
13+
=> cost = level : start ~ 거리
14+
"""
15+
import sys
16+
from collections import deque
17+
18+
n, m, k, start = map(int, sys.stdin.readline().split())
19+
#0.graph 정의
20+
INF = 300001
21+
graph = [[] for _ in range(n+1)]
22+
cost= [INF]*(n+1) # 최단 거리 graph
23+
visited=[False]*(n+1)
24+
for _ in range(m):
25+
a,b = map(int, sys.stdin.readline().split())
26+
graph[a].append(b)
27+
28+
# print(graph)
29+
#2 BFS
30+
queue = deque([start])
31+
visited[start] = True
32+
cost[start] = 0
33+
answer =list()
34+
35+
while queue :
36+
now = queue.popleft()
37+
38+
for n in graph[now] :
39+
40+
if not visited[n] :
41+
queue.append(n)
42+
visited[n] = True
43+
cost[n] = cost[now] + 1
44+
if cost[n] == k :
45+
answer.append(n)
46+
# 출력
47+
if len(answer)== 0 :
48+
print(-1)
49+
else :
50+
answer.sort()
51+
for a in answer:
52+
print(a)
53+

0 commit comments

Comments
 (0)