랭킹전 대기열 - 실버 2 (백준, 구현)
2023. 1. 19. 14:49ㆍ코딩 테스트 준비
728x90
반응형
import sys
input = sys.stdin.readline
P, M = map(int,input().split())
rooms = []
for _ in range(P):
player, nick = input().split()
rooms.append([player, nick])
level = 0
ans = []
x = 0
while rooms:
room = []
na = []
for idx, i in enumerate(rooms):
player, nick = i[0], i[1]
if len(room) == 0:
room.append([player, nick])
level = int(player)
elif len(room) < M and level-10 <= int(player) and int(player)<= level+10:
room.append([player, nick])
else:
na.append(rooms[idx])
room.sort(key=lambda x : x[1])
ans.append(room)
rooms = na
for i in ans:
if len(i) == M:
print("Started!")
else:
print("Waiting!")
for j in i:
print(j[0], j[1])
na와 room 리스트를 반복마다 초기화하고 room의 길이를 제한을 줘서 M만큼 차면 넘어가도록 설계했다.
2번 조건의 1은 반복문이 시작됐을때 바로 넣으면 해결이 된다.
풀 수 있어서 기분이 좋다. 사용한 알고리즘은 그리디이지 않을까 싶다.
728x90
반응형
'코딩 테스트 준비' 카테고리의 다른 글
숨박꼭질 3 - 골드 5 (백준, BFS) (0) | 2023.01.19 |
---|---|
이항 계수 2 11051 - (백준, DP) (0) | 2023.01.19 |
수 이어 쓰기 1515번 - 실버 3 (백준, 문자열) (0) | 2023.01.19 |
나무 자르기 - 실버 2 (백준, 이분탐색) (0) | 2023.01.19 |
01타일 - 실버 3 (백준 , DP) (0) | 2023.01.18 |