알고리즘

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

hminor 2023. 7. 6. 10:23
# 처음에는 li 값으로 나온 배열을 가지고
#  해당 값이 이전 값보다 작거나 같을 경우엔 result의 마지막 값을 1 증가시키고
#  클 경우엔 새롭게 배열을 추가하는 형식만 적용했는데 
# 다른 테스트 케이스들을 확인해보니 이전 값이 아닌
#  새롭게 배열이 추가되었을 때의 값보다 작을 경우도 체크해야한다는 걸 알게 되었다.

def solution(pgr, spd):
    li, result, check = [(100-pgr[i])//spd[i]+1 if (100-pgr[i])%spd[i] else (100-pgr[i])//spd[i] for i in range(len(spd))], [], 0
    for i in range(len(li)):
        if not result: result, check = [1], li[i]
        else:
            if li[i-1] >= li[i] or check >= li[i]: result[-1] += 1
            else: 
                check = li[i]
                result.append(1)
    return result