개발/PS

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

유훈 | Yuhun 2022. 1. 3. 15:31
반응형

풀이

def solution(progresses, speeds):
    answer = []
    complete = []  # 배포일 배열
    for i in range(len(progresses)):  #1 배포일을 계산해 complete에 대입
        temp = (100 - progresses[i]) // speeds[i]
        if (100 - progresses[i]) % speeds[i] == 0:
            complete.append(temp)

        else:
            complete.append(temp + 1)

    count = 0  # 배포되는 기능 수
    check = complete[0]  # 처음 기능 배포일

    for j in range(len(complete)):  #2 배포되는 기능 수를 계산해 answer에 대입
        if check >= complete[j]:
            count += 1
        else:
            answer.append(count)
            count = 1
            check = complete[j]

    answer.append(count)  # 마지막 배포 추가

    return answer

#1. complete라는 배열을 만들어 각 기능이 완성되어 배포 가능한 시기를 계산해 넣어주었다.

#2. complete 배열을 가지고 앞 기능과 비교해 함께 배포되는 수를 계산해 answer에 append 해주었다.

 

문제 풀이 후 다른 사람의 코드를 보고 알게된 점

1. 음수를 나눈 몫을 구한 후에 다시 양수로 바꿔주면 올림과 같다. (나는 그냥 나누고 나머지에 따라 + 1을 했다)

+ 올림은 ceil() , 버림은 floor() 반올림은 round()

2. 배열의 길이가 같다면 zip을 이용할 생각도 해보자

반응형