[Python] 백준 25192

eun·2024년 1월 28일

문제 25192

먼저 위 문제를 이해해보자.

  • 첫째줄에는 채팅방의 기록 수를 나타내는 정수 N이 주어진다.
  • 다음줄부터는 N개의 기록이 주어지며, 새로운 사람의 입장을 나타내는 ENTER와 채팅을 입력한 유저의 닉네임이 주어진다.
  • 새로운 사람이 입장한 후 채팅을 친 횟수는 총 몇 번인지 출력하는 문제이다.
# 25192
import sys

n = int(input())
names = set()
cnt = 0
for _ in range(n):
    name = sys.stdin.readline().rstrip()
    if name == "ENTER":
        names = set()
    elif name not in names:
        names.add(name)
        cnt += 1
        
print(cnt)

처음에는 위 문제를 쉽게 이해하고 list을 이용하여 풀었다. 하지만 계속 시간초과가 발생했다. 이후 set을 이용하여 푸니 바로 해결됐다.
dic이나 set은 시간복잡도가 O(1), list는 O(n)이라는 점을 잘 기억해두어야겠다.

0개의 댓글