
Baekjoon
[백준] 7785 회사에 있는 사람 (실버5) / 시간초과 해결, 리스트, 딕셔너리 시간복잡도
문제요약 나의 코드 및 설명 (시간초과) 리스트의 메서드인 append와 remove를 이용했으나 시간초과가 발생했다. n = int(input()) ans = [] for _ in range(n): name, command = map(str, input().split()) if command == 'enter': ans.append(name) elif command == 'leave': ans.remove(name) ans.sort(reverse=True) for i in ans: print(i) 다른 코드 및 설명 딕셔너리를 이용해 문제를 해결하였다. 리스트의 경우 원소를 제거할 때마다 O(n)의 시간복잡도가 발생하고, 최대 O(n^2)의 시간복잡도가 발생할 수 있다. 따라서, 원소의 추가와 제거의 ..