문제
20006번: 랭킹전 대기열
모든 생성된 방에 대해서 게임의 시작 유무와 방에 들어있는 플레이어들의 레벨과 아이디를 출력한다. 시작 유무와 플레이어의 정보들은 줄 바꿈으로 구분되며 레벨과 아이디는 한 줄에서 공백
www.acmicpc.net
코드
p,m = map(int, input().split())
res=[]
for i in range(p):
l,n =input().split()
l = int(l)
if(len(res)==0):
res.append([(l,n)])
continue
flag=True
for j in range(len(res)):
if len(res[j])==m:
continue
if abs(res[j][0][0]-l)<=10:
res[j].append((l,n))
flag = False
break
if flag:
res.append([(l,n)])
for i in res:
i.sort(key=lambda x: x[1])
if(len(i)==m):
print('Started!')
else:
print('Waiting!')
for l,n in i:
print(l,n)
풀이
- 단순한 구현 문제
- 플레이어 수 p와 방의 인원 제한 m을 입력 받는다
- 각 플레이어를 받으면서 방에 넣는다.
- 현재 방이 하나도 없으면 새로 생성한다.
- 존재하는 방이 인원제한에 차면 넘어간다.
- 만약 인원제한을 안넘긴다면 방을 생성한 사람의 레벨과 비교해서 +-10이면은 넣는다.
- 위에 해당하지 않으면 방을 새로 생성한다.
- 출력하기 전 닉네임을 기준으로 sort한 후 출력한다
'알고리즘' 카테고리의 다른 글
[백준] 2304 창고 다각형 python (0) | 2024.01.23 |
---|---|
[백준] 22233 가희와 키워드 python (1) | 2024.01.22 |
[프로그래머스] 방문 길이 python (0) | 2024.01.18 |
[프로그래머스] 호텔 대실 python (0) | 2024.01.17 |
[프로그래머스] 문자열 압축 python (1) | 2023.10.02 |