ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • playdata 프로그래머스 기초알고리즘4
    파이썬/알고리즘 공부 2021. 7. 27. 00:14
    728x90

    playdata 프로그래머스 기초알고리즘4


    기능개발


    #//올림 해주기위한 math를 import해준다
    import math
    def solution(progresses, speeds):
    
        date = []
        answer = []
        #// 몇일이 걸리는지 일수를 date 리스트에 넣어준다.
        for i in range(len(progresses)):
    
            x = math.ceil((100-progresses[i])/speeds[i])
            date.append(x)
         #//ex)(100-93)/1=7
               (100-30)/30=2.3xx
               (100-55)/5=9 
        #//date = [7, 3, 9]
    
        while date:
            left = date.pop(0) #// left = 7, date = [3, 9]
    
            result = 1
            while len(date) != 0 and left>=date[0]: #//date함수가 다 없어지거나, left값이 date[0]보다 큰동안 계속 반복 
                result+=1
                date.pop(0)
            answer.append(result)
        return answer

    주식가격


    def solution(prices):
        answer = [0] * len(prices) #// 리스트에 pirces길이만큼 자리 확보
    
        for i in range(len(prices)-1):         #//맨마지막은 0이므로 -1까지 받아온다.
            for j in range(i, len(prices)-1):  #// i값부터 시작값을 받아와 j의 반복시작이 i가 되도록 해준다(i가 0일때 j를0부터, i가 1일땐 j가 0이 아니라 1부터 시작)
                if prices[i] >prices[j]:       #//뒷자리 숫자가 떨어질경우 break
                    break
                else:                          #//뒷자리 숫자가 떨어지지 않았을경우(같거나 클때) answer에 각 인덱스의 값을 +1해준다
                    answer[i] +=1
        return answer

    다리를 지나는 트럭


    문제설명

    제한사항

    def solution(bridge_length, weight, truck_weights):
        answer = 0
        bridge_on = [0] * bridge_length  #//다리 길이만큼 자리확보
        cur_weight = 0                   #//현재 다리 무게
    
        while truck_weights:
            answer+=1                                   
            bridge_out = bridge_on.pop(0)      #//bridge_out = 0, bridge_on = [0]
            cur_weight -= bridge_out
            if cur_weight + truck_weights[0] > weight: 
                bridge_on.append(0)
            else:
                truck = truck_weights.pop(0)    #//truck = 7
                bridge_on.append(truck)         #//bridge on ->[0, 7]
                cur_weight+=truck               #// bridge_on 에 값들이 팝, 그 값을 빼줌
    
    
        while cur_weight > 0:                #//현재 무게가 0이 될때까지 반복
            answer += 1
            bridge_out = bridge_on.pop(0)           #//인덱스의 수를 맞추기 위해 0추가
            cur_weight -= bridge_out
    
    
        return answer

    댓글

Designed by Tistory.