https://www.acmicpc.net/problem/22988
n, x = map(int,input().split())
arr = sorted(list(map(int,input().split())))
cnt = 0
s = 0
e = n-1
rest = 0
while s <= e: # s와 e가 교체되면 멈춘다! s > e 일 떄 멈춘다는 뜻
if arr[e] == x:
cnt += 1
e -= 1
continue
if s == e:
rest += 1
break # 이제 탐색 끝났으니 빠져나오기
if arr[s] + arr[e] >= x/2:
cnt += 1
s += 1
e -= 1
else:
rest += 1
s += 1
print(cnt + rest // 3)
짜투리(rest) 개수가 3개 모이면 하나의 병을 완전히 채울 수 있다는 것을 파악해야 했음...
s == e 됐을 때 break으로 while문 빠져나와야 되는 것도 중요함!
'백준' 카테고리의 다른 글
백준 10815. 숫자 카드 (0) | 2024.10.27 |
---|---|
백준 2805. 나무 자르기 (0) | 2024.10.27 |
백준 3273. 두 수의 합 (0) | 2024.10.27 |
백준 2156. 포도주 시식 (0) | 2024.10.26 |
백준 9251. LCS (0) | 2024.10.26 |