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

[๋ฐฑ์ค€] 3040๋ฒˆ: ๋ฐฑ์„ค ๊ณต์ฃผ์™€ ์ผ๊ณฑ ๋‚œ์Ÿ์ด

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

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

 

3040๋ฒˆ: ๋ฐฑ์„ค ๊ณต์ฃผ์™€ ์ผ๊ณฑ ๋‚œ์Ÿ์ด

๋ฌธ์ œ ๋งค์ผ ๋งค์ผ ์ผ๊ณฑ ๋‚œ์Ÿ์ด๋Š” ๊ด‘์‚ฐ์œผ๋กœ ์ผ์„ ํ•˜๋Ÿฌ ๊ฐ„๋‹ค. ๋‚œ์Ÿ์ด๊ฐ€ ์ผ์„ ํ•˜๋Š” ๋™์•ˆ ๋ฐฑ์„ค๊ณต์ฃผ๋Š” ๊ทธ๋“ค์„ ์œ„ํ•ด ์ €๋… ์‹์‚ฌ๋ฅผ ์ค€๋น„ํ•œ๋‹ค. ๋ฐฑ์„ค๊ณต์ฃผ๋Š” ์˜์ž ์ผ๊ณฑ๊ฐœ, ์ ‘์‹œ ์ผ๊ณฑ๊ฐœ, ๋‚˜์ดํ”„ ์ผ๊ณฑ๊ฐœ๋ฅผ ์ค€๋น„ํ•œ๋‹ค. ์–ด๋Š ๋‚  ๊ด‘์‚ฐ์—์„œ ์•„ํ™‰ ๋‚œ์Ÿ์ด๊ฐ€ ๋Œ์•„์™”๋‹ค. (์™œ ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ป๊ฒŒ ์•„ํ™‰ ๋‚œ์Ÿ์ด๊ฐ€ ๋Œ์•„์™”๋Š”์ง€๋Š” ์•„๋ฌด๋„ ๋ชจ๋ฅธ๋‹ค) ์•„ํ™‰ ๋‚œ์Ÿ์ด๋Š” ๊ฐ๊ฐ ์ž์‹ ์ด ๋ฐฑ์„ค๊ณต์ฃผ์˜ ์ผ๊ณฑ ๋‚œ์Ÿ์ด๋ผ๊ณ  ์šฐ๊ธฐ๊ณ  ์žˆ๋‹ค. ๋ฐฑ์„ค๊ณต์ฃผ๋Š” ์ด๋Ÿฐ ์ผ์ด ์ƒ๊ธธ ๊ฒƒ์„ ๋Œ€๋น„ํ•ด์„œ, ๋‚œ์Ÿ์ด๊ฐ€ ์“ฐ๊ณ  ๋‹ค๋‹ˆ๋Š” ๋ชจ์ž์— 100๋ณด๋‹ค ์ž‘์€ ์–‘

www.acmicpc.net

 

์ฝ”๋“œ

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int[] arr = new int[9];
		int sum = 0;
		int num1 = 0;	// ์ผ๊ณฑ ๋‚œ์Ÿ์ด๊ฐ€ ์•„๋‹Œ ์• 
		int num2 = 0;	// ์ผ๊ณฑ ๋‚œ์Ÿ์ด๊ฐ€ ์•„๋‹Œ ์• 
		for(int i=0; i<arr.length; i++) {
			arr[i] = scan.nextInt();
			sum += arr[i];
		}
		
		for(int i=0; i<arr.length-1; i++) {
			for(int j=i; j<arr.length; j++) {
				if(sum - arr[i] - arr[j] == 100 && i != j) {
					num1 = i;
					num2 = j;
					break;
				}
			}
		}
		
		for(int i=0; i<arr.length; i++) {
			if(i == num1 || i == num2)
				continue;
			System.out.println(arr[i]);
		}
		
		scan.close();
	}

}

ํ’€์ด

๋‚œ์Ÿ์ด 9๋ช…์˜ ํ•ฉ์—์„œ ๋‚œ์Ÿ์ด๊ฐ€ ์•„๋‹Œ 2๋ช…์„ ๋บ€ ํ•ฉ์ด 100์ด ๋ ๋•Œ๊นŒ์ง€ ๋ชจ๋“  ๊ฒฝ์šฐ์˜์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค.

2๋ช…์ด ์•„๋‹Œ ์• ๋ฅผ ์ฐพ์„๊ฒฝ์šฐ, ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•˜๊ณ  ํƒˆ์ถœํ•œ๋‹ค.

์ถœ๋ ฅํ• ๋•Œ ์œ„์—์„œ ์ €์žฅํ•œ ์ธ๋ฑ์Šค์ธ ๊ฒฝ์šฐ, ๋›ฐ์–ด๋„˜๋Š”๋‹ค.(continue)

 

* ์˜ˆ์ œ์ž…๋ ฅ์˜ ๊ฒฝ์šฐ i=6, j=6 ์ธ๊ฒฝ์šฐ ๋ฐ˜๋ก€๊ฐ€ ์žˆ์–ด์„œ i, j์˜ ๊ฐ’์ด ๋‹ค๋ฅผ๋•Œ(๋‚œ์Ÿ์ด๋Š” ๋™์ผํ•œ์• ๊ฐ€ ์—†์œผ๋ฏ€๋กœ)๋ฅผ ์กฐ๊ฑด์œผ๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€