728x90
<문제 링크>
https://programmers.co.kr/learn/courses/30/lessons/42885
<문제 풀이>
- people이 정렬이 되어있지 않으므로 정렬 시킴
- 3~5 반복
- 해당 몸무게가 limit의 반 값보다 작고 people의 마지막 몸무게라면 answer에 1을 더하고 반복문 종료
- 해당 몸무게와 people의 마지막 몸무게를 합한 값이 limit보다 작으면 answer에 1을 더하고 마지막 몸무게 삭제
- 해당 몸무게와 people의 마지막 몸무게를 합한 값이 limit보다 크면 answer에 1을 더함
<코드>
def solution(people, limit):
answer = 0
people.sort(reverse=True)
for idx,i in enumerate(people):
if i <= limit//2 and idx==people[-1]:
answer += 1
break
if i+people[-1] <= limit:
answer+=1
people.pop()
else:
answer+=1
return answer
<고쳐야 할 점>
- max(people) + min(people) <= limit의 성립 조건만 이해하면 됨
- len(배열)은 배열.pop() 해도 반영이 안 됨
'두두의 알고리즘 > 문제' 카테고리의 다른 글
[플로이드워셜] 난이도2, M 기업 코딩테스트 '미래 도시' (Python) (0) | 2021.11.24 |
---|---|
[탐욕법] 난이도1, Facebook 인터뷰 '곱하기 혹은 더하기' (Python) (0) | 2021.11.24 |
[재귀함수] 프로그래머스 L2 '괄호 변환' (Python) (0) | 2021.11.23 |
[재귀함수] 백준 10872번 '팩토리얼' (Python) (0) | 2021.11.23 |
[재귀함수] 백준 10829번 '이진수 변환' (Python) (0) | 2021.11.23 |