나의 답 :
import collections, math
def solution(p, s):
p=collections.deque(p)
s=collections.deque(s)
answer = []
for i in range(len(p)):
p[i]=math.ceil((100-p[i])/s[i])
while len(p):
cnt=1
a=p.popleft()
p1=p.copy()
for i in range(len(p)):
if p[i]<=a:
p1.popleft()
cnt+=1
else: break
answer.append(cnt)
p=p1.copy()
return answer
다른 사람의 답 :
def solution(progresses, speeds):
Q=[]
for p, s in zip(progresses, speeds):
if len(Q)==0 or Q[-1][0]<-((p-100)//s):
Q.append([-((p-100)//s),1])
else:
Q[-1][1]+=1
return [q[1] for q in Q]
1. list의 pop을 사용하는 것 보다
2. from queue import Queue 해서 큐를 사용하는 것보다
3. import collections 의 collections.deque 를 사용하는 것이 더 효율적이더라.
'공부 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 숫자 문자열과 영단어(파이썬, 자바) (0) | 2021.12.10 |
---|---|
[프로그래머스] 스킬트리(파이썬) (0) | 2021.02.02 |
[프로그래머스] 주식가격(파이썬) (0) | 2021.01.22 |
[프로그래머스] 124나라의 숫자(파이썬) (0) | 2021.01.19 |
[프로그래머스] 멀쩡한 사각형(파이썬) (0) | 2021.01.19 |