백준 풀이/자바(Java)
백준 28353 자바 - 고양이 카페
콘스_
2024. 6. 7. 15:55
// 고양이 카페
package Silver_III_3;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;
public class Ex28353 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
// 첫 번째 줄 입력
int n = Integer.parseInt(st.nextToken()); // 고양이의 수
long k = Long.parseLong(st.nextToken()); // 한 명이 견딜 수 있는 최대 무게
// 두 번째 줄 입력
ArrayList<Long> weight = new ArrayList<>(); // 고양이의 무게를 저장할 연결리스트 선언
st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
weight.add(Long.parseLong(st.nextToken()));
}
// 무게 오름차순 정렬
Collections.sort(weight);
// 행복해질 수 있는 사람의 수 최댓값 계산
int temp = weight.size() - 1;
int count = 0; // 행복해질 수 있는 사람 카운트 변수
while (!weight.isEmpty() && 0 < temp && weight.get(0) <= k) {
if (weight.get(0) + weight.get(temp) <= k) {
weight.remove(temp);
weight.remove(0);
temp = weight.size() - 1;
count++;
} else {
temp--;
}
}
System.out.println(count);
}
}
이번 문제에서 주의할 점은 ArrayList를 사용할 떄, remove메서드를 사용하면 원소의 위치가 바뀌므로 뒤쪽 값 먼저 삭제해야 한다는 것이다.