본문 바로가기
Programming/알고리즘

[백준 / Python] 28353번 고양이 카페

by castberry_ 2023. 7. 22.
반응형

문제

https://www.acmicpc.net/problem/28353

 

28353번: 고양이 카페

첫째 줄에 정수 $N$과 $K$가 공백으로 구분되어 주어진다. $(1 \leq N \leq 5\,000;$ $1 \leq K \leq 10^9)$ 둘째 줄에는 각 고양이의 무게를 의미하는 $N$개의 정수 $w_1, w_2, \dotsm, w_N$이 공백으로 구분되어 주어

www.acmicpc.net


풀이

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 감소 (가장 무거운 고양이는 제외)

반응형

댓글