반응형
Frequency Queries | HackerRank
Process the insert/delete queries and report if any integer is there with a particular frequency.
www.hackerrank.com
[ 문제 ] 주어지는 query들을 정해진 규칙에 따라 수행하고 최종 출력을 return한다.
query 형태 = [a,b]
a에 따라 수행 작업이 달라지며, b는 수행의 대상이다.
arr, output = []
1) a = 1 : b를 arr에 넣는다.
2) a = 2 : b를 arr에서 뺀다.(존재할 경우)
3) a = 3 : list에서 frequency가 b인 것이 존재할 경우 1을, 존재하지 않을 경우 0을 output에 넣는다.
[ 예시 ]
[ 방법 ] : 리스트를 만들지 않고 dictionary로 처리한다.
dict = {}
output = []
1. query를 읽는다.
query[0] = a
query[1] = b
1) a == 1일 경우 : dict[b]에 1을 추가한다.
2) a == 2일 경우 : dict[b]에서 1을 뺀다.
* 이 때, dict[b]가 음수가 되어서는 안된다.
3) a == 3일 경우 : dict.values()에 b가 있다면 1을, 없다면 0을 output에 추가한다.
간단한 문제이지만 Time out으로 해결되지 않는 case도 있어서 몇가지 Trick을 추가해줘야 합니다-!
반응형
'Computer Science > 알고리즘' 카테고리의 다른 글
백준 - 탑(2493) Python (0) | 2020.12.21 |
---|---|
백준 - 괄호(9012) (1) | 2020.12.20 |
HackerRank - Count Triplets (0) | 2020.04.02 |
HackerRank - Array Manipulation (0) | 2020.03.31 |
Hackerrank - Minimum Swaps2 (0) | 2020.03.31 |