bit가 눈 앞에서 왔다갔다

프로그래머스) 42586 본문

Algorithm/Prob

프로그래머스) 42586

헬린인형 2021. 9. 3. 02:30
# from collections import deque
import math
progresses = [40, 93, 30, 55, 60, 65]
speeds = [60, 1, 30, 5, 10, 7]
# date = [ 1, / 7, 3, / 9, 4, 5 ]

def solution(progresses, speeds):
    answer = []
    # answer = [0 for i in range(100)]
    date = []   # 배포일
    max = flag = 0

    for _ in range(len(progresses)):
        date.append(math.ceil((100 - progresses.pop(0)) / speeds.pop(0)))

    # 1차
    # for _ in range(len(date)):
        # tmp = date.pop(0)

        # if answer[0] == 0:
        #     answer[0] = 1
        #     max = tmp
        #     flag = 0
        # else:
        #     if tmp <= max:
        #         answer[flag] += 1
        #     elif tmp > max:
        #         flag += 1
        #         answer[flag] += 1
        #         max = tmp

    # 2차
    # tmp = date[0]
    # for i in date:
    #     if tmp < i:
    #         flag += 1
    #         tmp = i
    #     answer[flag] += 1

    # 3차
    tmp = date[0]
    cnt = 0
    for i in date:
        if tmp >= i:
            cnt += 1
        else:
            answer.append(cnt)
            tmp = i    
            cnt = 1
    answer.append(cnt)




    # return answer[0:flag + 1]
    return answer

print(solution(progresses, speeds))

1차 시도로 맞췄는데

더 짧은 코드가 있는 걸 보고 나름대로 다시 생각하고 다시 생각하고 해서 3번 고쳐봤다.

1,2차 때 실행 시간이 대부분 비슷하거나 동일하게 나왔는데

3차로 고친 코드는 실행시간이 좀 들쭉날쭉하게 나옴

3차를 좀 더 효율적으로 고친다면 이렇게 될 것 같다.

cnt = 0
    p = date[0]
    for i in range(len(date)):
        if p < date[i]:
            answer.append(cnt)
            p = date[i]
            cnt = 0
        cnt += 1
    answer.append(cnt)

 

얼마 전 bfs dfs 하다가 힘들어서 그냥 프로그래머스에서 다른 유형 1, 2단계 수준 정도를 풀어보고 있다.

리프레쉬되는 느낌이 있다 ㅇㅇ

안 어려우니까 스트레스도 안 받고 자괴감도 안 들고

피곤하다 자야겠담

반응형

'Algorithm > Prob' 카테고리의 다른 글

Py) 프로그래머스 49189  (0) 2021.12.31
Py) 프로그래머스 42839  (0) 2021.12.28
프로그래머스) 42748  (0) 2021.09.02
이코테_BFS, DFS) Q19 연산자 끼워 넣기  (2) 2021.08.19
7576 토마토 - 방법1  (0) 2019.11.16
Comments