행궁동 데이터 엔지니어

반응형

https://programmers.co.kr/learn/courses/30/lessons/42586?language=python3

 

알고리즘 연습 - 기능개발 | 프로그래머스

실행 결과가 여기에 표시됩니다.

programmers.co.kr

for 문에 list를 지정하고 해당 list에서 pop()이 일어나면 반복문이 어떤식으로 흘러가는지 알게되었음.

 

아래는 풀이한 코드 다른사람들 코드는 훨씬 간결..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
def solution(progresses, speeds):
    answer = []
    
    pro = progresses
    sp = speeds
    
    # 100까지 몇일 필요한지 구하기
    def com_days_cal(pro, sp) :
        com = float((100-pro[0]) / sp[0])
        if (com - int(com)) > 0 :
            return int(com)+1
        else :
            return int(com)
        
    #본격적인 함수
    for i in range(0,len(pro)) :
        com_days = com_days_cal(pro,sp)
        count = 0
 
        for j in range(0,len(pro)) : # 현재 일수 기준으로 얼마나 진행되었는지 계산한다.
            pro[j] = pro[j] + com_days*sp[j]
        print(pro)
        while pro != [] :
            if pro[0>= 100 :
                count = count + 1
                pro.pop(0)
                sp.pop(0)
            else :
                break 
                
        answer.append(count)
        
        if len(pro) == 0 :
            return answer
 

 

다른사람 코드

1
2
3
4
5
6
7
8
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[1for q in Q]
반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band