Coding Test/programmers
[Python] 파이썬 프로그래머스 구명보트
파송송
2022. 11. 17. 20:51
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42885
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 풀이
구명보트는 작아서 최대 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