cording test
Lv.2 기능개발
JM Lee
2023. 6. 7. 03:06
728x90
코딩테스트 연습 - 기능개발 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
스택과 큐를 이용하는 문제라고 생각했는데, 사용하지 않아도 괜찮은 문제다.
굳이 간단하게 아래 코드처럼 큐를 사용해서 풀어보았는데, 레벨 2는 아닌 거 같은 쉬운 문제였다.
이번 코드는 쉽기 때문에 굳이 부연설명 들어가지 않음.
def solution(progresses, speeds):
answer=[]
day_=0
cnt=0
while len(progresses)>0:
if progresses[0]+day_*speeds[0]>=100:
progresses.pop(0)
speeds.pop(0)
cnt+=1
else:
if cnt>0:
answer.append(cnt)
cnt=0
day_+=1
answer.append(cnt)
return answer
다른 사람은 zip 함수를 이용해서 해결했다. 이게 좀 더 어려운 듯.
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]