https://www.acmicpc.net/problem/2437
์ฝ๋
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
int[] arr = new int[N];
int sum = 1;
for(int i=0; i<N; i++)
arr[i] = scan.nextInt();
Arrays.sort(arr);
for(int i=0; i<arr.length; i++) {
if(sum < arr[i])
break;
sum += arr[i];
}
System.out.println(sum);
scan.close();
}
}
ํ์ด
๋ฌธ์ ๋ฅผ ๊ณ ๋ฏผํ๋ค๊ฐ ์ถ๋ค์ ํ๋์ฉ ์ฌ๊ฐ๋ฉด์ ์ด ์ ์๋ ์ต์๊ฐ์ ๊ตฌํ๋ ์์ผ๋ก ํด๊ฒฐํ๋ ค๊ณ ํ์ง๋ง ๋ํต ํด๊ฒฐ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ด์ ํ์ด๋ฅผ ๋ดค๋ค.
๋ฌธ์ ์ ์ฃผ์ด์ง ์ ๋ ฅ์๋ณด๋ฉด 3 1 6 2 7 30 1 ๊ณผ ๊ฐ๋ค.
์ด ์๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ฉด 1 1 2 3 6 7 30 <- ๋ค์๊ณผ ๊ฐ์ด ๋๋ค.
์ฒซ ๋ฒ์งธ ์์์ธ 1์ ๋ง๋ค ์ ์๊ณ ,
๋ ๋ฒ์งธ ์์์ธ 1์ ๋ณด๋ฉด 1, 1+1=2 ์ด๋ฏ๋ก 1, 2๋ฅผ ๋ง๋ค ์ ์๋ค.
์ธ ๋ฒ์งธ ์์์ธ 2๋ฅผ ๋ณด๋ฉด 1, 2, 3, 4๋ก 1~4๊น์ง์ ๋ชจ๋ ์๋ฅผ ๋ง๋ค ์ ์๋ค.
๋ค ๋ฒ์งธ ์์์ธ 3์ ๋ณด๋ฉด ์ธ๋ฒ์งธ ์์์ธ 2๊น์ง ๋ง๋ค ์ ์๋ 1~4์์ 3์ ๋ํ๋ฉด 1~7๊น์ง ๋ชจ๋ ์๋ฅผ ๋ง๋ค ์ ์๋ค.
๋ค์ฏ ๋ฒ์งธ ์์์ธ 6์ ๋ณด๋ฉด 1~7๊น์ง์ ์์ 6์ ๋ํด 1~13๊น์ง ๋ชจ๋ ์๋ฅผ ๋ง๋ค ์ ์๋ค.
์ฌ์ฏ ๋ฒ์งธ ์์์ธ 7์ ์ด์ฉํ๋ฉด 20์ ๋ง๋ค ์ ์๋ค.
ํ์ง๋ง ์ผ๊ณฑ ๋ฒ์งธ ์์๋ฅผ ์ด์ฉํด๋ 21์ ๋ง๋ค ์ ์๋ค.
ํ์ฌ ์ฌ๋ฆฌ๋ ค๋ ์ ์ธ์ถ์ ๋ฌด๊ฒ๊ฐ, ์ง๊ธ๊น์ง ์ฌ๋ฆฐ ์ ์ธ์ถ์ ์ดํฉ๋ณด๋ค ์ปค์ง๋ฉด ์ ์ธ์ถ์ ์ดํฉ์ ์ธก์ ํ ์ ์๋ ์ต์๊ฐ์ด๋ค.
์ ์ธ์ถ์ ์ดํฉ์ ์ด๊ธฐ์ 1๋ก ์ค์ ํ ์ด์ ๋, ์ ์ธ์ถ์ ๋ฌด๊ฒ ์ค ๊ฐ์ฅ ๊ฐ๋ฒผ์ด๊ฒ์ด 1๋ณด๋ค ํฌ๋ฉด, 1์ ์ธก์ ํ ์ ์๊ธฐ๋๋ฌธ์ 1๋ก ์ด๊ธฐ๊ฐ์ ์ค์ ํ๋ค.
์ฌ์ค ์ ํ๋์์ด ๋ฌธ์ ์ ์ ๋ถ์ธ๋ฐ, ์์ ์กฐ๊ฑด์ ์ด๋ป๊ฒ ์๊ฐํด์ผ ํ ์ง,, ๋ค์์ ๋ค์ ํ์ด๋ด๋ ๋ชปํ ๊ฒ ๊ฐ๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 4641๋ฒ: Doubles(์์ ํ์) (0) | 2020.02.29 |
---|---|
[๋ฐฑ์ค] 2156๋ฒ: ํฌ๋์ฃผ ์์(DP) (0) | 2020.02.28 |
[๋ฐฑ์ค] 1236๋ฒ: ์ฑ ์งํค๊ธฐ(๊ตฌํ) (1) | 2020.02.27 |
[๋ฐฑ์ค] 1449๋ฒ: ์๋ฆฌ๊ณต ํญ์น(๊ทธ๋ฆฌ๋, ์ ๋ ฌ) (0) | 2020.02.27 |
[๋ฐฑ์ค] 2193๋ฒ: ์ด์น์(DP) (0) | 2020.02.27 |
๋๊ธ