본문 바로가기
코딩테스트

[백준] 7785번 회사에 있는 사람 - Python

by CuckooBird 2023. 3. 1.

[백준] 실버5 7785번 회사에 있는 사람 - Python

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

 

7785번: 회사에 있는 사람

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

www.acmicpc.net


문제


코드

맞았습니다가 뜬 코드입니다. - 메모리 55056KB | 시간 292ms | 코드 길이 304B

import sys
input = sys.stdin.readline
c = dict()
n = int(input().rstrip())
for _ in range(n):
    N, S = map(str, input().rstrip().split())
    if S == 'enter':
        c[N] = 1
    else:
        c[N] = 0
c = dict(sorted(c.items(), reverse = True))
for k, v in c.items():
    if v == 1:
        print(k)

Try1.

시간 초과가 뜬 코드입니다. - 코드 길이 265B

import sys
input = sys.stdin.readline
c = list()
n = int(input().rstrip())
for _ in range(n):
    N, S = map(str, input().rstrip().split())
    if S == 'enter':
        c.append(N)
    else:
        c.remove(N)
c.sort(reverse = True)
for name in c:
    print(name)
  • 해시를 사용하지 않아서 시간 초과가 났습니다. (리스트 사용함)

후기

전에 이 문제와 비슷한 카카오 문제를 친구와 봤던 기억이 나네요

오픈 채팅방에 들어갔다가 나오고 이름을 바꾸고 뭐 그런 문제였는데 나중에 그것도 풀어보면 좋겠습니다.