forDevLife
[이코테]만들 수 없는 금액 <그리디> 본문
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
long beforeTime = System.nanoTime();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int[] arr = new int[num];
for(int i=0; i<num; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr);
int target = 1;
for(int i=0; i<num; i++) {
if(target < arr[i])
break;
else
target += arr[i];
}
System.out.println(target);
long afterTime = System.nanoTime();
System.out.println("시간 : " + (afterTime-beforeTime)/1000000+"ms");
}
}
- target보다 작을 경우, 내부 배열안에서 해당 값을 감당(더해서 구할) 수 있다.
- target보다 클 경우, 해당 target은 만들지 못하는 값이 되어, 정답이 된다.
'알고리즘' 카테고리의 다른 글
[백준] 10162 - 전자레인지 (0) | 2021.06.08 |
---|---|
[부스트캠프] 자가진단 문제 (0) | 2021.05.24 |
[이코테]곱하기 혹은 더하기 <그리디> (0) | 2021.05.03 |
[이코테]모험가 길드 <그리디> (0) | 2021.05.03 |
[이코테]1이 될 때까지 <그리디> (0) | 2021.05.03 |
Comments