[프로그래머스]기능개발

박민하·2022년 8월 26일
0

python 문제

목록 보기
41/49

문제

✅ 코드

1. 실패

def solution(progresses, speeds):
    dict = {}
    answer = []
    j = 0
    
    for i in range(len(speeds)):
        dict[i] = progresses[i]
    while sum(answer) < len(dict): 
        a = len(dict)
        num = 0
        while dict[j] < 100:
            for key, value in dict.items():
                dict[key] = value + speeds[key]
        for i in range(a):
            if dict[i] >= 100:
                num += 1
            else:
                answer.append(num-len(answer))
                num = 0
                j += 1
                break
                
    return answer
  • 처음에는 for문으로 progresses + speeds 를 한 후에, 첫 번째 인덱스가 100이 넘는 순간 순차적으로 100 넘는 수를 삭제하는 방식으로 진행했으나 out of range로 실패
  • 딕셔너리로 다시 시도. pop을 사용하자 또 out of range 오류 발생.
  • 위 코드로 test case는 통과했지만, 채점 결과 1번 문제 외에는 모두 탈락했다...

2. 다른 사람의 코드

def solution(progresses, speeds):

    answer = []
    time = 0
    count = 0
    
    while len(progresses)> 0:
        if (progresses[0] + time*speeds[0]) >= 100: 
            progresses.pop(0)
            speeds.pop(0)
            count += 1
            
        else:
            if count > 0:
                answer.append(count)
                count = 0
            time += 1
    answer.append(count)
    return answer
profile
backend developer 🐌

0개의 댓글