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 | 29 | 30 | 31 |
Tags
- softeer
- Flutter
- 아마존 웹 서비스
- 플러터
- 프로그래머스
- 다트
- aws
- 소프티어
- VSCode
- Python
- DART
- kotlin
- 코테
- baekjoon
- GDSC
- 알고리즘
- 자바
- 스위프트
- 개발
- 파이썬
- programers
- java
- MVVM
- 머신러닝
- Android
- 현대sw
- 백준
- SWIFT
- 코틀린
- 안드로이드
Archives
- Today
- Total
조준장 개발자 생존기
[baekjoon] 백준 20006번(파이썬): 랭킹전 대기열 본문
문제
20006번: 랭킹전 대기열
모든 생성된 방에 대해서 게임의 시작 유무와 방에 들어있는 플레이어들의 레벨과 아이디를 출력한다. 시작 유무와 플레이어의 정보들은 줄 바꿈으로 구분되며 레벨과 아이디는 한 줄에서 공백
www.acmicpc.net
알고리즘
- 반복문을 통해 플레이어를 입력받아 방에 넣어준다.
- 각 방을 돌면서 조건에 합당하면 넣어준다.
- 못 들어간 플레이어가 있다면 새로운 방을 만들어 넣어준다.
- 이름 기준으로 정렬 후 출력한다.
코드
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 |