코딩테스트 연습 - 기능개발
프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 ��
programmers.co.kr
파이썬을 다시 공부한 뒤로 오랜만에 lv2문제를 풀어봤다.
역시 알고리즘 문제풀이에는 파이썬이 최고인것 같다.
리스트 형태를 pop(0)을 이용해 스택으로 문제를 해결했다.
배운 것 : list.pop(),list.pop(n)
풀이
def solution(progresses,speeds):
lst = []
ans = []
for i in range(len(progresses)):
temp = progresses[i]
cnt = 0
while temp<100:
temp+=speeds[i]
cnt+=1
lst.append(cnt)
while len(lst)!=0:
temp = lst.pop(0)
cnt = 1
while len(lst)>0 and temp>=lst[0]:
cnt+=1
lst.pop(0)
ans.append(cnt)
return ans
progresses = [93,30,55]
speeds = [1,30,5]
print(solution(progresses,speeds))
다른 사람 풀이
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]
zip이 뭔지 몰라서 공부했다.
zip()은 내장함수로 같은 길이의 리스트를 같은 인덱스끼리 잘라서 리스트로 반환을 해주는 역할을 한다. 상당히 유용하게 사용할 수 있는 내장함수다.
'IT > 알고리즘' 카테고리의 다른 글
프로그래머스 위장 (python) (0) | 2020.06.13 |
---|---|
프로그래머스 전화번호 목록 (0) | 2020.06.12 |
프로그래머스 문자열 내 p 와 y개수 (0) | 2020.06.09 |
프로그래머스 문자열 내 마음대로 정렬하기 (2) | 2020.05.30 |
프로그래머스 H-Index (0) | 2020.05.19 |