https://school.programmers.co.kr/learn/courses/30/lessons/42885

풀이
def solution(people, limit):
answer = 0
people.sort()
r_idx = len(people) - 1
l_idx = 0
while True:
if r_idx - l_idx == -1:
break
elif r_idx == l_idx:
answer += 1
break
elif people[r_idx] + people[l_idx] > limit:
r_idx -= 1
answer += 1
else:
r_idx -= 1
l_idx += 1
answer += 1
return answer
다른사람 풀이
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
짝지었을 경우만 answer += 1 해주고 총 인원에서 짝지은 수만 빼면 답이 나오는 거였당
그리고 while문을 a가 b가 작은 상태인 동안만 돌게 해주면 나처럼 쓸데없이 둘이 값이 같을 경우까지 조건을 안 붙여줘도 된다..
| [파이썬/python] 프로그래머스 : 신고 결과 받기 (Lv.1) (2022 KAKAO BLIND RECRUITMENT) (0) | 2023.03.29 |
|---|---|
| [파이썬/python] 프로그래머스 : 예상 대진표 (Lv.2) (0) | 2023.03.29 |
| [파이썬/python] 프로그래머스 : [카카오 인턴] 키패드 누르기 (Lv.1) (0) | 2023.03.29 |
| [파이썬/python] 백준 4134번 : 다음 소수(🥈4) (0) | 2023.03.28 |
| [파이썬/python] 백준 2485번 : 가로수(🥈4) (0) | 2023.03.28 |