문제

 

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)

풀이

  • 단순한 구현 문제
  1. 플레이어 수 p와 방의 인원 제한 m을 입력 받는다
  2. 각 플레이어를 받으면서 방에 넣는다.
    1. 현재 방이 하나도 없으면 새로 생성한다.
    2. 존재하는 방이 인원제한에 차면 넘어간다.
    3. 만약 인원제한을 안넘긴다면 방을 생성한 사람의 레벨과 비교해서 +-10이면은 넣는다.
    4. 위에 해당하지 않으면 방을 새로 생성한다.
  3. 출력하기 전 닉네임을 기준으로 sort한 후 출력한다

+ Recent posts