5_hyun 2022. 3. 23. 19:33
반응형

https://www.acmicpc.net/problem/7785

 

7785번: 회사에 있는 사람

첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는

www.acmicpc.net

 

내 풀이(맞음)

n = int(input())
dic = {}
for i in range(n):
    x, y = input().split()
    if y == 'enter':
        dic[x] = 1
    else:
        dic[x] = 0
dic = sorted(dic.items(), reverse = True)
for i in dic:
    if i[1] == 1:
        print(i[0])

딕셔너리로 구현을 했다. 이 문제에서 딕셔너리 키 값을 정렬하는 것을 다시 공부했다.

딕셔너리에 y가 enter면 1로 값을 넣고 leave면 키 값을 0으로 바꿨다. 그래서 내림차순으로 정렬했다. 정렬을 하고나면 딕셔너리가 배열로 바뀐다. 그리고 출력을 해줬다.

반응형