본문 바로가기
프로그래머스/2단계

(Python/LV2)기능개발

by windy7271 2022. 9. 26.
728x90
반응형

문제출처: https://school.programmers.co.kr/learn/courses/30/lessons/42586

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이:

# 27.3점 받은 코드

def solution(progresses, speeds):
    list = []
    for x,y in zip(progresses, speeds):
        count = 0
        while x <100:
            x += y
            count += 1
            if x >= 100:
                list.append([x,count])
    result = [True]
    for i in range(1,len(list)):
        result.append(list[i-1][1] < list[i][1] )
    result.append(True)
    answer = []

    for idx,i in enumerate(result):
        if i == True:
            answer.append(idx)
    return [answer[i] - answer[i-1] for i in range(1,len(answer))]

 

def solution(progresses, speeds):

    answer = []
    day = 0
    count = 0

    while len(progresses) > 0 :
        if ( progresses[0] + day * speeds[0] ) >= 100 :     # 100% 이상이면
            progresses.pop(0)                               # 리스트와
            speeds.pop(0)                                   # 속도 삭제한 후
            count += 1                                      # 배포 개수 1 증가
        else :
            if count > 0 :                                  # 100% 이상이 아닌데, 앞에서 배포할 작업이 있다면
                answer.append(count)                        # 배포개수를 answer 리스트에 담아준 후
                count = 0                                   # count 초기화
            day += 1                                        # 다음 날짜 작업을 확인하기 위해 작업 일수에 하루를 더해줌
    answer.append(count)                                    # 마지막 날꺼 더해줌

    return answer

 

반응형

댓글