반응형
문제
https://www.acmicpc.net/problem/28353
풀이
n, k = map(int, input().split())
data = list(map(int, input().split()))
p1, p2 = 0, n - 1
data.sort()
answer = 0
#p1이 작은쪽 p2가 큰쪽
while p1 < p2:
if data[p1] + data[p2] <= k:
p1 += 1
p2 -= 1
answer += 1
else:
p2 -= 1
print(answer)
먼저 입력을 받고 고양이 무게를 정렬한다.
[1, 2, 5, 7, 9]으로 고양이 무게 배열이 있다면 인덱스를 다루는 변수 p1, p2를 0, n - 1로 두고, (배열의 양 끝)
배열의 가장 큰 무게와 가장 작은 무게의 합이 감당할 수 있는 무게라면
p1을 1 증가, p2를 1 감소, 정답 변수를 1증가
감당할 수 없는 무게라면
p2를 1 감소 (가장 무거운 고양이는 제외)
반응형
'Programming > 알고리즘' 카테고리의 다른 글
[백준 / Python] 3036번 링 (0) | 2023.09.02 |
---|---|
[백준 / Python] 28293번 자릿수 (0) | 2023.08.08 |
[백준 / Python] 14912번 숫자 빈도수 (0) | 2023.07.17 |
[백준 / Python] 1181번 단어 정렬 (0) | 2023.07.09 |
[백준 / Python] 2941번 크로아티아 알파벳 (1) | 2023.07.02 |
댓글