본문 바로가기
알고리즘/프로그래머스 level 1,2

[파이썬🐍] 프로그래머스 : 기능 개발

by 코딩개미뚠뚠 2021. 4. 27.
반응형

처음 접근은 100%가 되기 위해 걸리는 날을 리스트로 따로 저장하는 것이었다.

그러나 너무 복잡해졌고 해결하지 못했다 ㅜㅜ

어제 오늘 고민하다가 서치를 통해 새로운 접근법을 발견했다.

처음 이코드를 봤을 때 너무 새로웠다.

변수를 하나 더 쓰면 복잡해질 것 같지만 사실 더 간단해질 수도 있다는 교훈을 얻었다.

def solution(progresses, speeds):
    answer = []
    days = 0
    count = 0
    
    while len(progresses) != 0:
        if progresses[0] + days * speeds[0] >= 100:
            progresses.pop(0)
            speeds.pop(0)
            count += 1
        else:
            if count > 0:
                answer.append(count)
                count = 0 
            days += 1    
    answer.append(count)
    return answer

코드 풀이 : days와 speed와의 곱을 통해 100이상이 되면 통과하고 리스트에서 제거해준다. 그렇지 않으면 answer리스트에 count를 추가해주고 days에 1을 더하면서 100이 넘을 때까지 반복한다.

반응형

댓글