Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 파이썬 클래스
- 99일지
- 파이썬 int()
- print sep
- 99클럽
- Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
- not a git repository
- 파이썬 map 함수
- 파이썬 |
- 99클럽 #99일지 #코딩테스트 #개발자스터디 #항해 #til
- 파이썬
- 항해플러스
- 코딩부트캠프후기
- EnvCommandError
- cp949
- Til
- 주니어개발자역량강화
- MomentumParameters
- 항해
- 항해99
- vscode cp949
- 10430번
- 개발자스터디
- 주니어개발자멘토링
- 파이썬 sep
- print("""
- 백준
- fatal:not a git repository
- 코딩테스트
- 개발자사이드프로젝트
Archives
- Today
- Total
선발대
[스파르타] 99클럽 2기 코테스터디 17일차 TIL / 구명보트 본문
프로그래머스: 구명보트 (링크)
우선 people 리스트를 오름차순으로 정렬해야 한다. 그리고 while문을 돌면서 deq의 0번째 인덱스와 마지막 인덱스의 요소를 더했을 때 limit보다 작은지 확인한다. 여기에서 작다면 pop(), popleft()로 둘을 제거하고 cnt += 1을 해준다. limit을 초과했을 경우는 제일 큰 수인 마지막 인덱스 요소만 pop()으로 제거해 준다. 모든 사람들의 각 몸무게는 보트의 한계를 넘지 않으므로 따로 if문 조건을 거치지 않고 pop()만 해주면 된다. 다만 여기 if문에서 0번째 인덱스와 마지막 인덱스 요소를 비교하기 때문에 deq에 1개의 요소만 남았을 때도 생각해 주면 된다.
from collections import deque
def solution(people, limit):
cnt = 0
deq = deque(sorted(people))
while deq:
if len(deq) == 1:
cnt += 1
break
if deq[0] + deq[-1] <= limit:
deq.pop()
deq.popleft()
else:
deq.pop()
cnt += 1
return cnt
'스파르타코딩클럽 > 활동 내용' 카테고리의 다른 글
[스파르타] 99클럽 2기 코테스터디 19일차 TIL / leet 1641 (0) | 2024.06.07 |
---|---|
[스파르타] 99클럽 2기 코테스터디 18일차 TIL / leet 894 (0) | 2024.06.06 |
[스파르타] 99클럽 2기 코테스터디 16일차 TIL / 조이스틱 (0) | 2024.06.04 |
[스파르타] 99클럽 2기 코테스터디 15일차 TIL / leet 2415 (0) | 2024.06.03 |
[스파르타] 99클럽 2기 코테스터디 14일차 TIL / leet 797 (0) | 2024.06.02 |
Comments