10
21

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

 

10448๋ฒˆ: ์œ ๋ ˆ์นด ์ด๋ก 

ํ”„๋กœ๊ทธ๋žจ์€ ํ‘œ์ค€์ž…๋ ฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜๋Š” ์ž…๋ ฅ์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์— ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋Š” ํ•œ ์ค„์— ์ž์—ฐ์ˆ˜ K (3 ≤ K ≤ 1,000)๊ฐ€ ํ•˜๋‚˜์”ฉ ํฌํ•จ๋˜์–ด์žˆ๋Š” T๊ฐœ์˜ ๋ผ์ธ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด

www.acmicpc.net

 

import java.io.*;

class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int size = Integer.parseInt(br.readLine());
        int[] tri = new int[50];
        // 1~1000๋„˜์–ด๊นŒ์ง€์˜ ์‚ผ๊ฐ์ˆ˜ ๋ชจ๋‘ ์ €์žฅ
        for(int i=1; i<=50; i++){
            tri[i-1] = (i*(i+1))/2;
        }

        for(int i=0;i<size;i++){
            int target = Integer.parseInt(br.readLine());
            sb.append(check(target, tri)).append("\n");
        }

        System.out.println(sb);
    }
    static int check(int target, int[] tri){
        for(int i=0; i<50;i++){
            for(int j=i+1;j<50;j++){
                for(int k=j+1;k<50;k++){
                    if(tri[i]+tri[j]+tri[k] == target) return 1;
                }
            }
        }
        return 0;
    }
}

์˜ค๋‹ต๋…ธํŠธ(ํ‘ธ๋Š” ๋™์•ˆ ์‚ฌ๊ณ ๊ณผ์ • ๋ฐ ๊ฐœ์„ ์ )

K๊ฐ€ ์ž‘์œผ๋‹ˆ ์‚ผ๊ฐ์ˆ˜๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌํ•ด์„œ ๋ฐฐ์—ด๋กœ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘๊ณ , ์‚ผ์ค‘ํฌ๋ฌธ์„ ๋Œ๋ ค์„œ ๋ธŒ๋ฃจํŠธํฌ์Šค๋กœ ํ•ด๊ฒฐํ•˜๋ฉด ๋œ๋‹ค๊ณ  ๋ฐ”๋กœ ๋– ์˜ฌ๋ž๋‹ค.

๋ฌธ์ œ๋ฅผ ์ œ๋Œ€๋กœ ์ฝ์ง€์•Š์•„ ์ค‘๋ณตํ•ด์„œ ์‚ผ๊ฐ์ˆ˜ ์„ธ๊ฐœ๋ฅผ ๋”ํ•˜๋Š” ๊ฒƒ์„ ๋†“์ณ ํ‹€๋ ธ๋‹ค...


์ •๋‹ต์ฝ”๋“œ

import java.io.*;

class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int size = Integer.parseInt(br.readLine());
        int[] tri = new int[50];
        // ๋Œ€๋žต 1~1000๊นŒ์ง€์˜ ์‚ผ๊ฐ์ˆ˜ ๋ชจ๋‘ ์ €์žฅ
        for(int i=1; i<=50; i++){
            tri[i-1] = (i*(i+1))/2;
        }

        for(int i=0;i<size;i++){
            int target = Integer.parseInt(br.readLine());
            sb.append(check(target, tri)).append("\n");
        }

        System.out.println(sb);
    }
    static int check(int target, int[] tri){
        for(int i=0; i<50;i++){
            for(int j=0;j<50;j++){
                for(int k=0;k<50;k++){
                    if(tri[i]+tri[j]+tri[k] == target) return 1;
                }
            }
        }
        return 0;
    }
}

์‚ผ์ค‘ํฌ๋ฌธ์„ ๋Œ ๋•Œ, ์„ธ ์ˆ˜๊ฐ€ ์ค‘๋ณต๊ฐ€๋Šฅํ•˜๋„๋ก ๋ฐ”๊ฟ”์„œ ํ•ด๊ฒฐํ–ˆ๋‹ค.

 

"๋Œ“๊ธ€, ๊ณต๊ฐ ๋ฒ„ํŠผ ํ•œ ๋ฒˆ์”ฉ ๋ˆ„๋ฅด๊ณ  ๊ฐ€์ฃผ์‹œ๋ฉด ํฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค"

 

๋ฐ˜์‘ํ˜•
COMMENT