출처 : https://www.acmicpc.net/problem/7785
7785번: 회사에 있는 사람
첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는
www.acmicpc.net

리스트로 풀었더니 시간초과 나와서
☆집합☆을 이용해서 풀어줬다!!!
리스트에서의 x in s 연산의 평균 시간 복잡도 : O(n)
세트에서의 x in s 연산의 평균 시간 복잡도 : O(1)
리스트는 어디 있는지 기억 X,
세트와 딕셔너리는 어디 있는지 기억 O(해시 테이블)
검색 시 리스트와 세트, 딕셔너리의 시간복잡도
O(n), O(1), O(1)
# BOJ7785 회사에 있는 사람
import sys
input=sys.stdin.readline
n = int(input())
ans = set()
for i in range(n):
people, now = input().split()
if now == "enter":
ans.add(people)
elif now == "leave":
ans.remove(people)
ans = list(ans)
ans.sort(reverse=True)
print(*ans, sep="\n")'알고리즘 > BOJ' 카테고리의 다른 글
| [BOJ / 백준] 2864번 5와 6의 차이 python / 파이썬 문자열 치환 (0) | 2022.07.27 |
|---|---|
| [BOJ / 백준] 2992 크면서 작은 수 python / 파이썬 백트래킹 (0) | 2022.07.23 |
| [BOJ / 백준] 3047번 ABC python / 파이썬 list 오름차순 정렬 (0) | 2022.07.19 |
| [BOJ / 백준] 5800번 성적 통계 python / 파이썬 list 내림차순 정렬 슬라이싱 (0) | 2022.07.17 |
| [BOJ / 백준] 1357번 뒤집힌 덧셈 python / 파이썬 형 변환 (0) | 2022.07.15 |
댓글