반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42885
문제 풀이
정렬하고 두포인터로 가장 가벼운 사람 + 가장 무거운 사람 조합으로 태워감.
제일 가벼운 사람을 태울 수 있을 때 까지 r_idx를 하나씩 빼감.
가벼운 사람을 태울 수 있으면 가능한 한 많은 가벼운 사람을 태움.
코드
def solution(people, limit):
# 구명보트는 혼자타거나, 둘이타거나
people.sort()
res, inter_sum = 0, 0
l_idx, r_idx = 0, len(people) -1
while l_idx < r_idx:
inter_sum = people[l_idx] + people[r_idx]
if inter_sum <= limit:
# 무거운사람 하나만 탈 수 있음
l_idx += 1
# 무겁 + 뚱뚱 둘 다 보냄
res += 1
r_idx -= 1
return res + int(l_idx == r_idx)
반응형
'알고리즘 > 프로그래머스 문제풀이' 카테고리의 다른 글
[프로그래머스] lv.2 예상 대진표 풀이 (0) | 2023.11.19 |
---|---|
[프로그래머스] lv.2 N개의 최소공배수 풀이 (0) | 2023.11.19 |
[프로그래머스] lv.2 영어 끝말잇기 풀이 (2) | 2023.11.19 |
[프로그래머스] lv.2 카펫 풀이 (0) | 2023.11.19 |
[프로그래머스] lv.2 짝지어 제거하기 풀이 (1) | 2023.11.19 |