문제

 

22233번: 가희와 키워드

1번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, floyd, os가 됩니다. 2번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, os가 됩니다. map은 1번째 글과 2번째 글에 중복으로 등장하였음을

www.acmicpc.net

코드

import sys

input = sys.stdin.readline

m, n =map(int,input().rstrip().split())
keyword = {}

unUse=m

for i in range(m):
    keyword[input().rstrip()]=False

for i in range(n):
    memo = input().rstrip().split(',')
    for j in memo:
        if(j in keyword):
            if(not keyword[j]):
                keyword[j]+=True
                unUse-=1
    print(unUse)

풀이

  • 사용되지 않은 키워드의 개수를 구해라
  1. 키워드를 입력받아 딕셔너리 키워드:0 형태로 만들어준다.
  2. unUse , 사용되지 않은 키워드의 개수를 세는 변수는 만들어준다
  3. 블로그에 사용한 키워드를 memo에 입력받고, 언급된 키워드들을 제거해준다.
    1. keyword에 없는 단어들은 체크하지 않는다.
    2. keyword에 있는데 value가 False이 아닌 단어는 이미 한번 이상 사용된 단어이므로 넘어간다.
    3. keyword에 있는 단어인데 value가 False인경우 사용하지 않은 단어이므로 True로 바꿔준 후 unUse-=1을 해준다

문제

 

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