문제
제출 코드
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 |