프로그래머스_구명보트_python
2021. 8. 23. 21:19ㆍ코딩테스트
반응형
https://programmers.co.kr/learn/courses/30/lessons/42885
코딩테스트 연습 - 구명보트
무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5
programmers.co.kr
from collections import deque
def solution(people, limit):
answer = 0
people = deque(sorted(people))
while people:
m = people.pop()
answer += 1
if people and people[0]<= limit-m:
people.popleft()
return answer
[내코드]
그냥 list사용하면 시간초과로 실패함.. deque사용.
people sorting하고 최대값과 최소값을 더한 값이 limit 이하면 최소값 빼냄.
def solution(people, limit) :
answer = 0
people.sort()
a = 0
b = len(people) - 1
while a < b :
if people[b] + people[a] <= limit :
a += 1
answer += 1
b -= 1
return len(people) - answer
[다른사람코드]
people sorting하고 양쪽 인덱스를 변수에 저장
양쪽 값을 더하고 limit이하면 시작인덱스+1, answer(같이태움)+1
끝인덱스는 매번 -1씩
끝인덱스와 시작인덱스가 같아지면 종료.
사람수-answer 리턴.
반응형
'코딩테스트' 카테고리의 다른 글
프로그래머스_오픈채팅방_python (0) | 2021.09.05 |
---|---|
프로그래머스_정수 삼각형_python (0) | 2021.08.29 |
프로그래머스_조이스틱_python (0) | 2021.08.22 |
프로그래머스_타겟 넘버_python (0) | 2021.08.13 |
프로그래머스_체육복_python (0) | 2021.08.11 |