๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm

[๋ฐฑ์ค€] 2851๋ฒˆ: ์Šˆํผ ๋งˆ๋ฆฌ์˜ค

by ์ฃผ๋ฐœ2 2020. 1. 18.
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/2851

 

2851๋ฒˆ: ์Šˆํผ ๋งˆ๋ฆฌ์˜ค

๋ฌธ์ œ ์Šˆํผ ๋งˆ๋ฆฌ์˜ค ์•ž์— 10๊ฐœ์˜ ๋ฒ„์„ฏ์ด ์ผ๋ ฌ๋กœ ๋†“์—ฌ์ ธ ์žˆ๋‹ค. ์ด ๋ฒ„์„ฏ์„ ๋จน์œผ๋ฉด ์ ์ˆ˜๋ฅผ ๋ฐ›๋Š”๋‹ค. ์Šˆํผ ๋งˆ๋ฆฌ์˜ค๋Š” ๋ฒ„์„ฏ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‚˜์˜จ ์ˆœ์„œ๋Œ€๋กœ ์ง‘์œผ๋ ค๊ณ  ํ•œ๋‹ค. ํ•˜์ง€๋งŒ, ๋ชจ๋“  ๋ฒ„์„ฏ์„ ์ง‘์„ ํ•„์š”๋Š” ์—†๊ณ  ์ค‘๊ฐ„์— ์ค‘๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค. ์ค‘๊ฐ„์— ๋ฒ„์„ฏ์„ ๋จน๋Š” ๊ฒƒ์„ ์ค‘๋‹จํ–ˆ๋‹ค๋ฉด, ๊ทธ ์ดํ›„์— ๋‚˜์˜จ ๋ฒ„์„ฏ์€ ๋ชจ๋‘ ๋จน์„ ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ์ฒซ ๋ฒ„์„ฏ์„ ๋จน์ง€ ์•Š์•˜๋‹ค๋ฉด, ๊ทธ ์ดํ›„ ๋ฒ„์„ฏ๋„ ๋ชจ๋‘ ๋จน์„ ์ˆ˜ ์—†๋‹ค. ๋งˆ๋ฆฌ์˜ค๋Š” ๋ฐ›์€ ์ ์ˆ˜์˜ ํ•ฉ์„ ์ตœ๋Œ€ํ•œ 100์— ๊ฐ€๊น๊ฒŒ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค. ๋ฒ„์„ฏ์˜ ์ ์ˆ˜๊ฐ€ ์ฃผ์–ด

www.acmicpc.net

 

์ฝ”๋“œ

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๊ณผ ๊ฐ€์žฅ ๊ทผ์‚ฌํ•œ ๊ฐ’์ด๋‹ค.

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€