음하하 오랜만에 한 번에 통과!
내 수준은 실버 5인가 ? ...
# 실버 5 | 회사에 있는 사람
import sys
input = sys.stdin.readline
n = int(input())
log = dict()
for _ in range(n):
worker, state = map(str, input().rstrip().split())
if state == 'enter':
log[worker] = 1
else:
log[worker] = 0
incompany = [worker for worker in log.keys() if log[worker] == 1]
incompany.sort(reverse=True)
for i in incompany:
print(i)
처음에는 약간 pop
같은 메소드를 써야하나? 생각했다가 시간 초과뜰 것 같아서 받을 때 회사에 있는 사람인지 아닌지 판단하기로 했다.
간단한 코드니 설명은 생략 !
import sys
input = sys.stdin.readline
# 입력
N = int(input())
company = {}
for _ in range(N):
man, state = input().rstrip().split()
if state == 'enter':
company[man] = True
else:
del company[man]
# 출력
print("\n".join(sorted(company.keys(), reverse=True)))
출처: https://star7sss.tistory.com/398
나는 dictionary의 value를 바꿔주는 식으로 진행했는데, 만약 leave라면 아예 그 key 값을 삭제하는 것도 하나의 방법이었다.
이렇게 하면 dictionary의 value를 한 번 더 찾아주지 않아도 되니 시간이 더 줄어들 것 같군 ...
실제로도 시간이 꽤나 많이 줄었다.
Hash 삭제는 del
... 잊지말기!
역시 다른 사람의 코드를 보고 내 코드를 반성하는 작업은 꼭 필요하다.