문제
알고리즘
- 반복문을 통해 플레이어를 입력받아 방에 넣어준다.
- 각 방을 돌면서 조건에 합당하면 넣어준다.
- 못 들어간 플레이어가 있다면 새로운 방을 만들어 넣어준다.
- 이름 기준으로 정렬 후 출력한다.
코드
import sys
p, m = map(int, sys.stdin.readline().split())
rooms = []
# 각각의 플레이어를 입력 받아 방에 넣어주기
for _ in range(p):
l, n = input().split()
# 최초 입력된 플레이어
if not rooms:
rooms.append([[int(l), n]])
continue
# 방에 들어갔는지 확인 하는 flag변수
enter = False
# 각 방을 돌면서
for room in rooms:
# 조건에 합당하면 넣어주기
if len(room) < m and room[0][0] - 10 <= int(l) <= room[0][0] + 10:
room.append([int(l), n])
enter = True
break
# 못들어갔으면 새로운 방을 파서 넣어주기
if not enter:
rooms.append([[int(l), n]])
# 이름 기준 정렬
for room in rooms:
room.sort(key=lambda x: x[1])
# 정원 수에 따라 출력
for room in rooms:
if len(room) == m:
print('Started!')
else:
print('Waiting!')
for player in room:
print(*player)
github
'CodingTest > Baekjoon' 카테고리의 다른 글
[programers] 프로그래머스(코틀린) : 가장 먼 노드 (0) | 2022.08.19 |
---|---|
[baekjoon] 백준 20006번(코틀린): 랭킹전 대기열 (0) | 2022.08.19 |
[baekjoon] 백준 1337번(코틀린): 올바른 배열 (0) | 2022.08.16 |
[baekjoon] 백준 1337번(파이썬): 올바른 배열 (0) | 2022.08.16 |
[baekjoon] 백준 1308번(자바): D-Day (0) | 2022.08.15 |