본문 바로가기

알고리즘/해커랭크

Frequency Queries

문제

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

 

제출 코드

 

def freqQuery(queries):
    res=[]
    d1 = Counter()
    d2 = Counter()
    for i in range(q):
        s, v = queries[i]
        if s==1:
            d1[v]+=1
            d2[d1[v]]+=1
        elif s==2:
            d1[v] = max(0, d1[v]-1)
            if d1[v]>0:   
                d2[d1[v]]+=1
                d2[d1[v]+1]-=1
        elif s==3:
            if d2[v]>0:
                res.append(1)
            else:
                res.append(0)
    return res

5/15 test cases failed :(

더할때도 이전 값 카운트 빼줘야 한다는 것을 잊음

 

def freqQuery(queries):
    res=[]
    d1 = Counter()
    d2 = Counter()
    for i in range(q):
        s, v = queries[i]
        if s==1:
            d1[v]+=1
            d2[d1[v]]+=1
            d2[d1[v]-1]-=1		#추가
        elif s==2:
            d1[v] = max(0, d1[v]-1)
            if d1[v]>0:     
                d2[d1[v]]+=1
                d2[d1[v]+1]-=1
        elif s==3:
            if d2[v]>0:
                res.append(1)
            else:
                res.append(0)
    return res

1/15 test cases failed :(

근데 또틀ㄹ미 ㅠㅠㅠㅠㅠ

from collections import Counter
# Complete the freqQuery function below.
def freqQuery(queries):
    res=[]
    d1 = Counter()
    d2 = Counter()
    for i in range(q):
        s, v = queries[i]
        if s==1:
            d2[d1[v]] = max(0, d2[d1[v]]-1)
            d1[v]+=1
            d2[d1[v]]+=1
        elif s==2:
            d2[d1[v]] = max(0, d2[d1[v]]-1)
            d1[v] = max(0, d1[v]-1)       
            if d1[v]>0:     
                d2[d1[v]]+=1
        elif s==3:
            if d2[v]>0:
                res.append(1)
            else:
                res.append(0)
    return res

ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ 힘드럿,, 

Count가 -값이 될수도 있나보다 max(0,~)안쓰면 3가지 케이스 틀림 

'알고리즘 > 해커랭크' 카테고리의 다른 글

Two Strings  (0) 2020.03.28
Jumping on the Clouds  (0) 2020.03.20
New Year Chaos  (0) 2020.03.16
Arrays: Left Rotation  (0) 2020.03.16
Cats and a Mouse  (0) 2020.03.16