https://www.acmicpc.net/problem/20006
❗풀이방법
- 이중 for문 사용
- 현재 룸의 레벨에 맞는지와 정원이 다 찼는지 확인하기
- 확인 후 현재 룸에 사람을 넣었다면 flag를 True로 변경
- 현재 사람이 아무데도 들어가지 못했다면 새로운 방 생성
- 각 룸에 누가 있는지 출력 시 닉네임을 기준으로 정렬 후 출력
❗코드
import sys
input = sys.stdin.readline
p, m = map(int, input().split(" "))
people = []
rooms = []
standard = []
for _ in range(p):
level, nickname = input().rstrip().split(" ")
level = int(level)
people.append([level, nickname])
for i in range(p):
now = people[i]
flag = False
for j, room in enumerate(rooms):
# 현재 룸의 레벨이 now랑 맞는지
if len(room) < m and standard[j] - 10 <= now[0] and now[0] <= standard[j] + 10:
room.append(now)
flag = True
break
# 안 맞는 경우
if not flag:
rooms.append([now])
standard.append(now[0])
for room in rooms:
if len(room) == m:
print("Started!")
else:
print("Waiting!")
room = sorted(room, key=lambda x : x[1])
for p in room:
print(*p)
728x90
반응형
'🔻PS > Baekjoon' 카테고리의 다른 글
[Baekjoon] 백준 20920 영단어 암기는 괴로워 Python (0) | 2024.09.19 |
---|---|
[Baekjoon] 백준 1138 한 줄로 서기 Python (1) | 2024.09.17 |
[Baekjoon] 백준 2533 사회망 서비스(SNS) Python (2) | 2024.09.16 |
[Baekjoon] 백준 1043 거짓말 Python (1) | 2024.09.15 |
[Baekjoon] 백준 1780 종이의 개수 Python (0) | 2024.09.13 |