Algorithm

[์•Œ๊ณ ๋ฆฌ์ฆ˜] Brute force ๋ธŒ๋ฃจํŠธํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์•Œ์•„๋ณด๊ธฐ ( ๋ฐฑ์ค€ 2309๋ฒˆ ์ผ๊ณฑ ๋‚œ์Ÿ์ด with ์ž๋ฐ” )

์žฅ์šฉ์„ 2024. 3. 7. 16:37

 

๐Ÿค” Brute force ๋ธŒ๋ฃจํŠธํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜?

'๋ฌด์‹ํ•œ ํž˜' ์œผ๋กœ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค, ์ด ๋œป ์ฒ˜๋Ÿผ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ๋ฌด์‹ํ•˜๊ฒŒ ํ•˜๋‚˜ํ•˜๋‚˜ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ „๋ถ€ ํƒ์ƒ‰ํ•˜์—ฌ ์กฐ๊ฑด์— ๋งž๋Š” ๋‹ต์„ ์ฐพ๊ธฐ ๋•Œ๋ฌธ์— ์ •ํ™•ํ•œ ๋‹ต์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋†’๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ฃจํŠธํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ธŒ๋ฃจํŠธํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ •ํ˜•ํ™”๋œ ํ‹€์ด ์—†๊ธฐ๋•Œ๋ฌธ์— ์ฃผ์–ด์ง„ ๋ฌธ์ œ ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€์ดํ•ฉ๋‹ˆ๋‹ค.

  • ๋‹จ์ˆœ Brute force ( for๋ฌธ )
  • ์žฌ๊ท€ํ˜ธ์ถœ
  • ๋น„ํŠธ๋งˆ์Šคํฌ
  • ์ˆœ์—ด
  • DFS / BFS

 

๐Ÿ’ก ํ•˜์ง€๋งŒ ๋น„ํšจ์œจ์ ์œผ๋กœ ๋ณด์ด๋Š” ๋ธŒ๋ฃจํŠธํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์™œ ์‚ฌ์šฉํ• ๊นŒ์š”?

์ž…๋ ฅ๋˜๋Š” ๋ฒ”์œ„๊ฐ€ ์ž‘๊ณ , ํƒ์ƒ‰ํ•ด์•ผํ•  ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์ ์€ ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ์ตœ์ ํ™”๋œ ๋ณต์žกํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋น„์šฉ์ด ๋†’๊ธฐ๋•Œ๋ฌธ์— ์ง๊ด€์ ์œผ๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ์ชฝ์ด ๋” ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ ๋‹ต์„ ๋„์ถœํ•˜๋ฏ€๋กœ ํ•ญ์ƒ ์ •ํ™•ํ•œ ๋‹ต์„ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋ฐฉ๋ฒ•์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

 

โœ” ๋ฌธ์ œ ์œ ํ˜•

์ฃผ์–ด์ง„ ์กฐ๊ฑด์— ๋งž๋Š” ์กฐํ•ฉ์„ ์ฐพ๋Š” ๋ฌธ์ œ

 

โœ” ๋ฌธ์ œ ํ’€์ด

๋‚œ์ด๋„ : ๋ธŒ๋ก ์ฆˆ1 ๐Ÿฅ‰

 

2309๋ฒˆ: ์ผ๊ณฑ ๋‚œ์Ÿ์ด

์•„ํ™‰ ๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๋‚œ์Ÿ์ด๋“ค์˜ ํ‚ค๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ํ‚ค๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š” ์ž์—ฐ์ˆ˜์ด๋ฉฐ, ์•„ํ™‰ ๋‚œ์Ÿ์ด์˜ ํ‚ค๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๋ฉฐ, ๊ฐ€๋Šฅํ•œ ์ •๋‹ต์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€์ธ ๊ฒฝ์šฐ์—๋Š” ์•„๋ฌด๊ฑฐ๋‚˜ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net

 

9๋ช…์˜ ๋‚œ์Ÿ์ด๋“ค ์ค‘ 7๋ช…์˜ ๋‚œ์Ÿ์ด๋“ค์˜ ํ‚ค์˜ ํ•ฉ์ด 100์ด ๋˜๋Š” ๋‚œ์Ÿ์ด๋“ค(์กฐํ•ฉ)์„ ์ฐพ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

 

๋ธŒ๋ฃจํŠธํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์ง€๋งŒ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ์ง๊ด€์ ์œผ๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ฒ˜์Œ ๋ฌธ์ œ๋ฅผ ์ ‘ํ–ˆ์„ ๋•Œ ๋‚œ์Ÿ์ด์˜ ํ‚ค๋ฅผ ํ•œ๋ช…์”ฉ ๋”ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋‚˜๊ฐ€๋ ค ํ–ˆ์ง€๋งŒ 7๋ช…์˜ ์กฐํ•ฉ์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๊ธฐ๋•Œ๋ฌธ์— ๋ฐ˜๋ณต๋ฌธ์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.๐Ÿ˜ญ

๊ทธ๋ ‡๋‹ค๋ฉด ๋ฐ˜๋Œ€๋กœ 9๋ช…์˜ ๋‚œ์Ÿ์ด์˜ ํ‚ค์ค‘ 2๋ช…์˜ ๋‚œ์Ÿ์ด ํ‚ค๋ฅผ ๋นผ๋Š”์‹์œผ๋กœ ์ ‘๊ทผํ•œ๋‹ค๋ฉด 2๋ช…์˜ ๋‚œ์Ÿ์ด์˜ ์กฐํ•ฉ๋งŒ ์‹ ๊ฒฝ์“ฐ๋ฉด ๋  ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.lang.StringBuilder;
import java.util.Arrays;

public class Main{
	public static void main(String[] args) throws IOException {
       	BufferedReader br = new BufferedReader( new InputStreamReader(System.in));
	    StringBuilder sb = new StringBuilder();
        
        int[] dwarfs = new int[9];
        int sum = 0;
        for( int i = 0; i<9; i++){
            dwarfs[i] = Integer.parseInt(br.readLine());
            sum += dwarfs[i]; // 9๋ช…์˜ ๋‚œ์Ÿ์ด ํ‚ค์˜ ์ด ํ•ฉ์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
        }

        for( int i = 0; i<8; i++){
            for( int j = i+1; j<9; j++){
            	/*
                * 2๋ช…์˜ ๋‚œ์Ÿ์ด ํ‚ค๋ฅผ ๋บ€ ๊ฐ’์ด 100์ด๋ผ๋ฉด ํ‚ค๋ฅผ 0์œผ๋กœ ๋ณ€๊ฒฝํ•จ์œผ๋กœ์จ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค
                * ์ •๋ ฌ์„ ํ†ตํ•ด ์ œ์™ธํ•œ ๊ฐ’์„ ๋งจ ์•ž์œผ๋กœ ์œ„์น˜์‹œํ‚ค๊ณ  
                * index 2๋ฒˆ ( k = 2 ) ๋ถ€ํ„ฐ ๋‚œ์Ÿ์ด์˜ ํ‚ค๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
                */ 
                if( sum - dwarfs[i] - dwarfs[j] == 100){
                    dwarfs[i] = 0;
                    dwarfs[j] = 0;
                    Arrays.sort(dwarfs);
                    for( int k = 2; k<9; k++){
                        sb.append(dwarfs[k]).append("\n");
                    }
                    System.out.print(sb);
                    return;
                }
            }
        }
	}
}

 

๐Ÿ“Œ 

๋ธŒ๋ฃจํŠธํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ์ค‘ ์ž˜ ์•Œ๋ ค์ง„ ๋ธ”๋ž™์žญ ๋ฌธ์ œ์ฒ˜๋Ÿผ ๊ณ ์ •๋œ ์กฐํ•ฉ์„ ๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ ‡๊ฒŒ ์ ‘๊ทผํ•˜๋ ค ํ–ˆ์œผ๋‚˜ ์กฐํ•ฉ์˜ ๋ฒ”์œ„๊ฐ€ ๋งŽ์•„ ํ•œ๋ฒˆ ๋” ์ƒ๊ฐ ํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ ๊ฐ™์Šต๋‹ˆ๋‹ค.

DFS์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๊ฐ™์€ ์žฌ๊ท€ํ˜ธ์ถœ์„ ํ†ตํ•ด์„œ๋„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์žฌ๊ท€์—๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์กฐ๊ธˆ ๋ถ€์กฑํ•œ๊ฒƒ ๊ฐ™์•„ ์ง๊ด€์ ์ธ for๋ฌธ์„ ํ†ตํ•ด ํ’€์–ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.