첫 풀이
1. 다리길이의 리스트를 만든다
2. 한 칸씩 땡기며 무게가 가능하면 차를 올려준다
def solution(bridge_length, weight, truck_weights):
answer=0
bridge=[0 for _ in range(bridge_length)]
while bridge:
answer+=1
bridge.pop(0)
if truck_weights:
if truck_weights[0]+sum(bridge)<=weight:
bridge.append(truck_weights.pop(0))
else:
bridge.append(0)
return answer
더 나은 답안
1. sum을 변수로 따로 관리해야한다
2. 리스트의 길이가 커질수록 연산이 늘어나게된다
def solution(bridge_length, weight, truck_weights):
answer=0
bridge=[0 for _ in range(bridge_length)]
s=0
while bridge:
answer+=1
tmp=bridge.pop(0)
s-=tmp
if truck_weights:
if truck_weights[0]+s<=weight:
tmp=truck_weights.pop(0)
bridge.append(tmp)
s+=tmp
else:
bridge.append(0)
return answer
배운 점
1. 리스트가 크거나 sum을 계속 이용해야하는경우 변수로 따로 관리하면 연산시간을 줄일 수 있다
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 파이선 문제풀이 - 기지국 설치 (0) | 2023.05.08 |
---|---|
[프로그래머스] 파이썬 문제풀이 - 숫자 게임 (0) | 2023.05.06 |
[프로그래머스] 파이썬 문제풀이 - 숫자 변환하기 (0) | 2023.05.04 |
[프로그래머스] SQL 문제풀이 - 오랜 기간 보호한 동물(1) (0) | 2023.04.28 |
[프로그래머스] SQL 문제풀이 - 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2023.04.27 |
댓글