https://www.acmicpc.net/problem/2851
์ฝ๋
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[] mush = new int[10];
int sum; // ๊ฐ ๋ฒ์ฏ๋ณ ์ด ์ ์
int result; // ์ต์ข
์ ์
int eat = 1; // ๋ฒ์ฏ์์ ++
int compare1; // ๋ฒ์ฏ ์ ์ ๋น๊ต ๋ณ์
int compare2; // ๋ฒ์ฏ ์ ์ ๋น๊ต ๋ณ์
for(int i=0; i<mush.length; i++)
mush[i] = scan.nextInt();
result = mush[0];
for(int i=0; i<mush.length; i++) {
sum = 0;
if(eat == 10) // ๋ฒ์ฏ์ด ์ด 10๊ฐ์ด๋ฏ๋ก 10๊ฐ์ผ๋ ํ์ถ
break;
/* ๊ฐ ๋ฒ์ฏ๋ณ ์ด ์ ์
* ์ฒซ๋ฒ์งธ + ๋๋ฒ์งธ
* ์ฒซ๋ฒ์งธ + ๋๋ฒ์งธ + ์ธ๋ฒ์งธ
* ์ฒซ๋ฒ์งธ + ๋๋ฒ์งธ + ์ธ๋ฒ์งธ + ๋ค๋ฒ์งธ ...
*/
for(int j=0; j<=eat; j++)
sum += mush[j];
// ์ ์๊ฐ 100 => ํ์ถ
if(sum == 100) {
result = sum;
break;
}
// ๋ฒ์ฏ์ ์ด ์ ์๊ฐ 100๋ณด๋ค ํฐ๊ฒฝ์ฐ๋ ์์ผ๋ฏ๋ก ์ ๋๊ฐ์ผ๋ก ํ๋จํจ
compare1 = Math.abs(100 - result);
compare2 = Math.abs(100 - sum);
// ๋ฒ์ฏ ์ ์์ ์ด ํฉ์ด 100์ ๊ทผ์ฌํ ๊ฐ ์ฐพ๊ธฐ
if(compare1 >= compare2)
result = sum;
eat ++;
}
System.out.println(result);
scan.close();
}
}
ํ์ด
๋ฒ์ฏ์ ์ฒ์๋ถํฐ ๋์จ ์์๋๋ก ์ก์์ผ ํ๋ค.
์ฒซ๋ฒ์งธ๋ ๋ฌด์กฐ๊ฑด ๋จน๊ณ ,๋ค์์์๋๋ก ๋จน๋ค๊ฐ ์ค๊ฐ์ ๋ฉ์ถ ์ ์๋๋ฐ, ์ค๋จํ๋ฉด ์ดํ์๋ ๋ชจ๋ ๋จน์ ์ ์๋ค.
๋ฐ๋ผ์ ๋ชจ๋ ๋น๊ต๋ฅผ ํด์ฃผ์ด์ ์ด์ ์ด 100๊ณผ ๊ฐ์ฅ ๊ทผ์ฌํ ๊ฐ์ ์ฐพ์์ฃผ์๋ค.
์ฒซ๋ฒ์งธ ๋ฒ์ฏ์ ๋จน์์๋์ ์ ์,
์ฒซ๋ฒ์งธ ~ ๋๋ฒ์งธ ๋ฒ์ฏ์ ๋จน์์๋์ ์ ์,
์ฒซ๋ฒ์งธ ~ ์ธ๋ฒ์งธ ๋ฒ์ฏ์ ๋จน์์๋์ ์ ์,
...
์ฒซ๋ฒ์งธ ~ N๋ฒ์งธ ๋ฒ์ฏ์ ๋จน์์๋์ ์ ์
์์ผ๋ก ๋ฒ์ฏ์ ์ดํฉ์ ๊ตฌํ๊ณ , ์ด์ ์ 100๊ณผ ๊ฐ์ฅ ๊ทผ์ฌํ ๊ฐ์ผ๋ก ์ ์ฅ๋์ด์๋ result์ ๋น๊ต๋ฅผ ํด์ ๊ทผ์ฌํ ๊ฐ์ ์ฐพ๋๋ค.
์ ์๊ฐ 100๋ณด๋ค ํฐ๊ฒฝ์ฐ๋ ์์ผ๋ฏ๋ก, ์ ๋๊ฐ์ ์ด์ฉํด ํ์๋ค.
์ฒซ๋ฒ์งธ ~ N-1๋ฒ์งธ ๊น์ง์ ์ ์ : 97์
์ฒซ๋ฒ์งธ ~ N ๋ฒ์งธ ๊น์ง์ ์ ์ : 102์
์์ ๊ฐ์๋, ์ ๋๊ฐ์ด ์์ N๋ฒ์งธ ๊น์ง์ ์ ์๊ฐ 100๊ณผ ๊ฐ์ฅ ๊ทผ์ฌํ ๊ฐ์ด๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 2858๋ฒ: ๊ธฐ์์ฌ ๋ฐ๋ฅ (0) | 2020.01.19 |
---|---|
[๋ฐฑ์ค] 10798๋ฒ: ์ธ๋ก์ฝ๊ธฐ (0) | 2020.01.18 |
[๋ฐฑ์ค] 1977๋ฒ: ์์ ์ ๊ณฑ์ (0) | 2020.01.18 |
[๋ฐฑ์ค] 2846๋ฒ: ์ค๋ฅด๋ง๊ธธ (0) | 2020.01.17 |
[๋ฐฑ์ค] 14697๋ฒ: ๋ฐฉ ๋ฐฐ์ ํ๊ธฐ (0) | 2020.01.17 |
๋๊ธ