728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42885
나의 풀이
구명보트는 작아서 최대 2명씩 탈 수 있다. 문제 잘 읽자..
- sort 후 앞과 뒤를 비교하여 limit 보다 크다면 del[-1], 작다면 del[0],del[-1] 해준다
def solution(people, limit):
people.sort()
ans = 0
while people:
if len(people) == 1:
ans += 1
return ans
else:
if people[0] + people[-1] > limit:
del people[-1]
else:
del people[0]
del people[-1]
ans += 1
return ans
효율성 테스트 1에서 시간 초과가 떴다. 저번에 len() 써서 효율성 테스트 통과 못한적이 있는데 그거 때문인 것 같다
그게 아니라면 del...?
a, b에 처음 인덱스와 끝 인덱스를 할당하여 사용함
def solution(people, limit):
people.sort()
ans = 0
a, b = 0, len(people)-1
while a <= b:
if people[a] + people[b] <= limit:
a += 1
b -= 1
ans += 1
return ans
728x90
'Coding Test > programmers' 카테고리의 다른 글
[Python] 파이썬 프로그래머스 위장 (0) | 2022.11.24 |
---|---|
[Python] 파이썬 프로그래머스 괄호 회전하기 (0) | 2022.11.22 |
[Python] 파이썬 프로그래머스 정수 삼각형 (0) | 2022.11.14 |
[Python] 파이썬 프로그래머스 멀리 뛰기 (0) | 2022.11.06 |
[Python] 파이썬 프로그래머스 점프와 순간이동 (0) | 2022.11.05 |