๐Ÿ“” Algorithm

[Programmers] Lv1. ์†Œ์ˆ˜ ๋งŒ๋“ค๊ธฐ

kyuu_ng 2022. 11. 23. 14:06

- ๋ฌธ์ œ :

  • nums์— ์žˆ๋Š” ์ˆซ์ž ์ค‘ ์„œ๋กœ ๋‹ค๋ฅธ 3๊ฐœ๋ฅผ ๊ณจ๋ผ ๋”ํ–ˆ์„ ๋•Œ ์†Œ์ˆ˜๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ ๊ตฌํ•˜๊ธฐ 
package org.example;

public class proPrac22 {
    public static void main(String[] args) {
        int nums[] = {1,2,7,6,4};
        int answer = 0;

        for (int i = 0; i < nums.length; i++) {
            for (int j = i + 1; j < nums.length; j++) {
                for (int k = j + 1; k < nums.length; k++) {
                    // ๋ชจ๋“  ๊ฒฝ์šฐ์˜์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ์œ„ํ•ด์„œ ์‚ผ์ค‘ for๋ฌธ์„ ์‚ฌ์šฉ
                    int sum = nums[i] + nums[j] + nums[k];
                    // num i + num j(i+1) + num k(j+1)์„ ๋”ํ•ด์„œ
                    if (check(sum)) {
                        // check ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ sum๊ฐ’์„ ๋„ฃ์–ด์„œ ํ˜ธ์ถœํ•œ๋‹ค.
                        answer++;
                    }
                }
            }
        }
        System.out.println(answer);
    }

    public static boolean check(int sum) {
        for (int i = 2; i < sum; i++) {
            // 1์€ ๋‚˜๋ˆ ๋ณผ ํ•„์š” ์—†์œผ๋ฏ€๋กœ, 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆฐ๋‹ค
            if (sum % i == 0)
                return false;
            // i๋กœ ๋‚˜๋ˆ„์—ˆ์„๋•Œ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€๋ฉด ์†Œ์ˆ˜ ์•„๋‹ˆ๋ฏ€๋กœ false๋ฅผ ๋ฆฌํ„ดํ•˜๊ณ 
        } return true;
        // i๋กœ ๋‚˜๋ˆ„์—ˆ์„๋•Œ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š์œผ๋ฉด true
    }
}

์ฒ˜์Œ์œผ๋กœ 3์ค‘ for๋ฌธ์„ ์‚ฌ์šฉํ•ด๋ณด๊ณ  ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ํ˜ธ์ถœํ•ด ๋ณด์•˜๋‹ค.