📖 문제
🧑🏻💻 풀이 과정
1) 문제 이해 및 접근
탑승 가능한 인원이 최대 2명이므로, 무게가 가장 작은 사람과 가장 큰 사람이 함께 탐승하게 하는 방법이 최선의 방법입니다.
2) 알고리즘
- 탐욕법
3) 풀이 코드
사용 언어 - Python
from collections import deque
def solution(people, limit):
answer = 0
q = deque(sorted(people, reverse=True)) # 사람의 무게를 내림차순으로 정렬
while q: # 사람이 남아있으면
answer += 1 # 보트 한개 추가
if len(q) < 2: # 한명만 남았으면, 혼자 사용
q.pop()
elif q[0] + q[-1] <= limit: # 무게가 가장 작은 사람과 가장 큰 사람이 같이 타도 괜찮으면
q.pop() # 둘이 같이 탑승
q.popleft()
else: # 둘이 탑승이 불가능하다면, 몸무게 큰 사람이 혼자 탑승
q.popleft()
return answer
📝 결과 및 학습한 내용
1) 어려웠던 내용
특별히 없습니다.
2) 새롭게 학습한 내용
특별히 없습니다.
🔗 문제 링크
- https://programmers.co.kr/learn/courses/30/lessons/42885
※ 오류 및 오타, 다른 의견이 있는 경우 댓글을 남겨주시면 감사하겠습니다
'알고리즘 문제풀이 > Python' 카테고리의 다른 글
[백준] 11052 카드 구매하기 (0) | 2022.03.19 |
---|---|
[프로그래머스] 삼각 달팽이 (0) | 2022.03.16 |
[프로그래머스] 캐시 (0) | 2022.03.15 |
[프로그래머스] 양궁대회 (0) | 2022.03.14 |
[백준] 2644 촌수계산 (0) | 2022.03.13 |
댓글