문제를 요약해보자면 입력으로 현재 피로도와, 장신구 갯수를 받아 피로도 200 미만에서 장신구를 최대 몇개 만들 수 있는지 갯수를 출력해줘야 한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] arr = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
int[] trinkets = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
Arrays.sort(trinkets);
int ans = 0;
int current = arr[0];
for (int i = 0; i < trinkets.length; i++) {
if (current < 200) {
current += trinkets[i];
ans++;
} else {
break;
}
}
System.out.println(ans);
}
}
문제를 풀어보자면 장신구를 오름차순으로 정렬해준 뒤 반복문을 돌려 가장 피로도가 낮은 항목부터 계속 만들면서 피로도가 200을 넘어가면 반복문을 중단하고 만든 갯수를 출력해주면 끝이다
Leave a Reply