반응형

https://www.hackerrank.com/challenges/frequency-queries/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=dictionaries-hashmaps

 

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

+ Recent posts