[c++] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค :: N์œผ๋กœ ํ‘œํ˜„ (๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ)

 

https://programmers.co.kr/learn/courses/30/lessons/42895

๋ฌธ์ œ ์„ค๋ช…

์•„๋ž˜์™€ ๊ฐ™์ด 5์™€ ์‚ฌ์น™์—ฐ์‚ฐ๋งŒ์œผ๋กœ 12๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

12 = 5 + 5 + (5 / 5) + (5 / 5)
12 = 55 / 5 + 5 / 5
12 = (55 + 5) / 5

5๋ฅผ ์‚ฌ์šฉํ•œ ํšŸ์ˆ˜๋Š” ๊ฐ๊ฐ 6,5,4 ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฒฝ์šฐ๋Š” 4์ž…๋‹ˆ๋‹ค.
์ด์ฒ˜๋Ÿผ ์ˆซ์ž N๊ณผ number๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, N๊ณผ ์‚ฌ์น™์—ฐ์‚ฐ๋งŒ ์‚ฌ์šฉํ•ด์„œ ํ‘œํ˜„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ์ค‘ N ์‚ฌ์šฉํšŸ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • N์€ 1 ์ด์ƒ 9 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • number๋Š” 1 ์ด์ƒ 32,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ์ˆ˜์‹์—๋Š” ๊ด„ํ˜ธ์™€ ์‚ฌ์น™์—ฐ์‚ฐ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋‚˜๋ˆ„๊ธฐ ์—ฐ์‚ฐ์—์„œ ๋‚˜๋จธ์ง€๋Š” ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ์†Ÿ๊ฐ’์ด 8๋ณด๋‹ค ํฌ๋ฉด -1์„ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

N number return
5 12 4
2 11 3

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์˜ˆ์ œ #1
๋ฌธ์ œ์— ๋‚˜์˜จ ์˜ˆ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ #2
11 = 22 / 2์™€ ๊ฐ™์ด 2๋ฅผ 3๋ฒˆ๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋‚˜์˜ ๋‹ต

์ƒ๊ฐ์˜ ํ๋ฆ„
  1. ์™„์ „ ํƒ์ƒ‰์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ์„๊นŒ?

    ์ฃผ์–ด์ง„ number๋ณด๋‹ค N์ด ์ž‘์„ ๋•Œ๋Š” +, x ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ 11๋ฐฐํ•˜๊ณ 

    ๊ฐ™์„ ๋•Œ๋Š” returnํ•˜๊ณ 

    N์ด ๋” ํด ๋•Œ๋Š” -, / ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜์ง€ ์•Š์„๊นŒ?

    => ์‹œ๊ฐ„ ๋ณต์žก๋„๋„ ํด ๋ฟ๋”๋Ÿฌ ๊ด„ํ˜ธ๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์˜ค์ง€ ์•Š๋Š” ์ƒํ™ฉ์€ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Œ

    => 5, 3600 ์—์„œ (55+5)*(55+5) ๋กœ 6์ด ๋‹ต์œผ๋กœ ์ถœ๋ ฅ๋˜์–ด์•ผ ํ•˜์ง€๋งŒ ๊ด„ํ˜ธ๋ฅผ ๋’ค์—์„œ ๋จผ์ € ์น˜๋Š” ์ƒํ™ฉ์„ ๊ณ ๋ คํ•  ์ˆ˜ ์—†์Œ, ๋ฌด์กฐ๊ฑด ์ˆœ์ฐจ์  ์ง„ํ–‰

    => ์ด ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ•˜๋ ค๋ฉด *์™€ / ์—ฐ์‚ฐ ์‹œ ์ด๋•Œ๊ป ๋‚˜์™”๋˜ ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋“ค์„ ๋ชจ๋‘ test ํ•ด๋ด์•ผํ•จ (๊ตฌํ˜„ํ•ด๋ณด์•˜๋”๋‹ˆ ๊ต‰์žฅํžˆ ์˜ค๋ž˜๊ฑธ๋ฆผ)

  2. ์žฌ๊ท€ ํ•จ์ˆ˜๋กœ ํ’€ ์ˆ˜ ์žˆ์„๊นŒ?

    ์–ด์ฐจํ”ผ 8 ์ดˆ๊ณผ๋Š” -1๋กœ ๋ฐ˜ํ™˜๋˜์–ด์•ผํ•˜๋ฏ€๋กœ ์žฌ๊ท€๋ฅผ ํ•ด๋„ 8๋ฒˆ๋ฐ–์— ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋˜ํ•œ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ์™€์ค‘์— ์ด๋ฏธ ๊ฒ€์‚ฌํ•œ ์ˆซ์ž๋“ค์€ ํ•ด๋‹น ์ˆ˜๋ฅผ ๋งŒ๋“ค ๋•Œ ๋“ค์—ˆ๋˜ N์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ฐพ์•„์„œ ๋”ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ bfs๋ฅผ ๋Œ๋ฉด์„œ ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋‘ ์ €์žฅํ•ด๋ณด์•˜์Œ (N๊ณผ number์˜ ๋Œ€์†Œ๋น„๊ต๋Š” 1๊ณผ ๊ฐ™์ด ํ•จ - 4๊ฐ€์ง€ ์—ฐ์‚ฐ์„ *11์„ ํ•˜๋ฉด์„œ ๊ณ„์† ์‹œ๋„ํ•˜๋Š” ๊ฑด ๋„ˆ๋ฌด ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ํฌ๋‹ค๊ณ  ์ƒ๊ฐํ•จ)

    => bfs๋กœ ์‹œ๋„ํ•ด๋ณด์•˜์œผ๋‚˜ '55/5+5/5'๋ฅผ '(55+5)/5'๋กœ ์ถ•์†Œ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์œผ๋ ค๋ฉด answer๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ ์ „ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ๋˜ ๊ตฌํ˜„ํ•ด์•ผํ•ด์„œ ๋„ˆ๋ฌด ๋ณต์žกํ•ด ํฌ๊ธฐํ•จ

  3. ํŠน์ •ํ•œ ๋ฐฉ๋ฒ•์„ ์ฐพ๊ธฐ

    ๊ด„ํ˜ธ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? ๊ด„ํ˜ธ๋ฅผ ํŠน์ • ๋ฌธ์ž๋กœ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ๋ณต์žกํ•จ (๊ตฌํ˜„ํ•ด๋ณด๋ ค๊ณ  ๋จธ๋ฆฌ๋ฅผ ๊ตด๋ ค๋ณด์•˜์œผ๋‚˜ ์‹คํŒจ)

    => ๊ด„ํ˜ธ๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ ๋„ ๋ชจ๋“  ์ˆ˜๋ฅผ ๊ฒ€์‚ฌํ•ด์„œ ์ฒ˜๋ฆฌ๋˜๊ฒŒ ํ•ด์•ผํ•จ

    => ๊ฒ€์‚ฌํ•  ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” N, NN, NNN, ... , NNNNNNNN ๋ฟ์ž„ (์ตœ์†Ÿ๊ฐ’์ด 8๋ฒˆ ์ดˆ๊ณผ๋กœ ๋‚˜์˜ค๋ฉด -1 return์ด๊ธฐ ๋•Œ๋ฌธ)

    => NNN ์€ (N)(NN), (NN)(N)๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด์ „์— ๊ณ„์‚ฐํ•ด๋‘์—ˆ๋˜ ๊ฐ’๋“ค์„ ๊ฐ€์ ธ์™€์„œ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๋ฉด ๋จ

 

<์ตœ์ข… ๋‹ต>
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

vector<vector<int>> numbers(9, vector<int>());
vector<int> num_list;

int solution(int N, int number) {
    int num;
    int answer = 987654321;

    numbers[1].push_back(N);
    num = N * 11;
    for (int i = 2; i < 9; i++) { // 8๋ฒˆ
        numbers[i].push_back(num);
        if (num == number && i < answer) {
            answer = i;
            break;
        }
        for (int j = 1; j < i; j++) { //4๋ฒˆ
            int num1 = j;
            int num2 = i - j;
            for (int k = 0; k < numbers[num1].size(); k++) { 
                for (int l = 0; l < numbers[num2].size(); l++) {
                    int tmp[4];
                    tmp[0] = numbers[num1][k] + numbers[num2][l];
                    tmp[1] = numbers[num1][k] - numbers[num2][l];
                    tmp[2] = numbers[num1][k] * numbers[num2][l];
                    if(numbers[num2][l])
                        tmp[3] = numbers[num1][k] / numbers[num2][l];
                    for (int z = 0; z < 4; z++) {
                        if (find(num_list.begin(), num_list.end(), tmp[z]) == num_list.end()) {
                            num_list.push_back(tmp[z]);
                            if (tmp[z] == number && i < answer) {
                                answer = i;
                                break;
                            }
                        }
                        if (find(numbers[i].begin(), numbers[i].end(), tmp[z]) == numbers[i].end()) {
                            numbers[i].push_back(tmp[z]);
                        }
                    }
                }
            }
        }
        num = 10 * num + N;
    }
    if (answer > 8)
        answer = -1;
    return answer;
}

int main() {
    int N, number;
    cin >> N >> number;
    cout << solution(N, number);
}

3๋ฒˆ์งธ ์ƒ๊ฐ์˜ ํ๋ฆ„์— ๋”ฐ๋ผ ํŠน์ •ํ•œ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์„œ ํ•ด๊ฒฐํ•œ ์ฝ”๋“œ์ด๋‹ค.

 ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด,

 N = 5, number = 12 ์ผ ๋•Œ 5๋Š” 8๊ฐœ๊นŒ์ง€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ 8๊ฐœ์˜ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ํ•ด๋‹น ์ˆ˜๋งŒํผ์˜ N์ด ์žˆ์„ ๋•Œ ์—ฐ์‚ฐ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฐ๊ณผ์˜ ์ง‘ํ•ฉ์„ ์ €์žฅํ•œ๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ์—์„œ '5' 1๊ฐœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฐ๊ณผ๋Š” 5 ์ž์‹ ๋ฐ–์— ์—†๋‹ค. ๋”ฐ๋ผ์„œ arr[1]์—๋Š” {5}๋ฅผ ์ง‘์–ด๋„ฃ๋Š”๋‹ค. '5' 2๊ฐœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฐ๊ณผ๋Š” '5'๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋‘ ๋ถˆ๋Ÿฌ์™€ '5'๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฐ๊ณผ์™€ ์—ฐ์‚ฐํ•˜๋ฉด๋œ๋‹ค. ๊ฐ๊ฐ {5}๋ฐ–์— ์—†์œผ๋ฏ€๋กœ +,-,*,/ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด {55,10,0,25,1}์ด '5' 2๊ฐœ์™€ ์‚ฌ์น™์—ฐ์‚ฐ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค. '5' 3๊ฐœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฐ๊ณผ๋Š” '55'์˜ ๊ฒฐ๊ณผ์ง‘ํ•ฉ์—๋‹ค๊ฐ€ '5'์˜ ๊ฒฐ๊ณผ์ง‘ํ•ฉ์„ ์—ฐ์‚ฐํ•˜๋ฉด ๋˜๋Š”๋ฐ, ๋ง์…ˆ ๊ณฑ์…ˆ์ด ์•„๋‹Œ ๋‚˜๋ˆ—์…ˆ ๋บ„์…ˆ์€ ์•ž๋’ค ํ”ผ์—ฐ์‚ฐ์ž์˜ ์ˆœ์„œ์— ๋”ฐ๋ผ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ”๋€Œ๋ฏ€๋กœ '5'์˜ ๊ฒฐ๊ณผ์ง‘ํ•ฉ์—๋‹ค๊ฐ€ '55'์˜ ๊ฒฐ๊ณผ์ง‘ํ•ฉ์„ ์—ฐ์‚ฐํ•œ ๊ฒฐ๊ณผ๊นŒ์ง€ ๊ณ„์‚ฐํ•ด์ค€๋‹ค.

 ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ณ„์† ๊ณ„์‚ฐํ•˜๋ฉด ๋˜๋Š”๋ฐ ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ ๊ฒฐ๊ณผ์ง‘ํ•ฉ์— ์ž๊ธฐ์ž์‹ ๋„ ๋“ค์–ด๊ฐ€์•ผํ•œ๋‹ค๋Š” ์ ๊ณผ ์ค‘๋ณต๋œ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์œผ๋ฉด ์•ˆ๋œ๋‹ค๋Š” ์ ์ด๋‹ค. (์•ˆ๋  ๊ฑด ์—†์ง€๋งŒ ๋ณต์žก๋„๊ฐ€ ๋„ˆ๋ฌด ์ปค์ง„๋‹ค.)

 

๊ฐœ์„ ํ•  ์ 

 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ๋Š” ๋‹ค ํ’€๊ณ ๋‚˜๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ๋‹ต๋„ ๋ณผ ์ˆ˜ ์žˆ๊ณ , ๋‚˜์˜ ๋‹ต๋„ ์ž๋™์œผ๋กœ ๊ณต๊ฐœ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค๋ฅธ ๋‹ต๋„ ์ข€ ํ›”์ณ(?)๋ดค๋‹ค. ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ํ™•์ธ์„ ์ง„ํ–‰ํ•˜๋˜ ์ค‘ 130ms๊นŒ์ง€ ๋‚˜์™€์„œ ๋„ˆ๋ฌด ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฌ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ•ด์•ผํ–ˆ๋‹ค.

 ์ฒ˜์Œ์— ๋‚˜์˜จ ์ฝ”๋“œ๋Š” ๋ณธ์ธ๊ณผ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์€ ๊ฐ™์•˜์œผ๋‚˜ c++ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ธก๋ฉด์—์„œ ๋ฐฐ์šธ ์ ์ด ๋งŽ์•˜๋‹ค.

  • unordered_set ์ด์šฉ (์ •๋ ฌํ•  ํ•„์š”๋Š” ์—†๊ธฐ ๋•Œ๋ฌธ์—)

    ๋ณธ์ธ์€ 2์ค‘ vector ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•ด์„œ ๊ฒฐ๊ณผ์ง‘ํ•ฉ์„ ํ‘œํ˜„ํ–ˆ๋Š”๋ฐ ๊ทธ ์ด์œ ๋Š” set์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์—ˆ์ง€๋งŒ set์˜ ์š”์†Œ์— ์ ‘๊ทผํ•˜๋Š” ๋ฒ•์„ ๋ชฐ๋ž๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ˆ set ์š”์†Œ๋Š” ์•„๋ž˜์— ๋‚˜์˜ค๋Š” for๋ฌธ์œผ๋กœ ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ณ  set๋ณด๋‹ค ์ •๋ ฌํ•  ํ•„์š”๊ฐ€ ์—†๋Š” unordered_set ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋” ๋น ๋ฅด๋‹ค๊ณ  ํ•œ๋‹ค.

    ์‹ค์ œ๋กœ ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ unordered_set์˜ insert, erase, find ์—ฐ์‚ฐ์€ O(1)์— ์ˆ˜ํ–‰๋œ๋‹ค.

    ์›๋ฆฌ์— ๋Œ€ํ•ด์„œ๋Š” ๋‚˜์ค‘์— ๋” ์ž์„ธํžˆ ๊ณต๋ถ€ํ•  ์˜ˆ์ •! (ํ‘œ์‹œํ•ด๋‘์—ˆ๋‹ค.)

  • auto ํƒ€์ž… ์ด์šฉ

    ๊ณ„์†ํ•ด์„œ ์Šต๊ด€ํ™” ๋˜์–ด์žˆ์ง€ ์•Š์•„์„œ์ธ์ง€ auto ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ ๋ณ„๋กœ ๋ฌธ์ œ ๋  ๊ฒƒ์€ ์—†์–ด๋ณด์ธ๋‹ค.

  • container์˜ ์š”์†Œ ํ•˜๋‚˜์”ฉ ๋ฐ›๊ธฐ

    for(int n1 : s1) // s1์˜ ์š”์†Œ๋ฅผ n1์œผ๋กœ ํ•˜๋‚˜์”ฉ ๋ฐ›๊ธฐ

    set๋„ ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ์š”์†Œ๋ฅผ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค. (iterator๋กœ ๋ฐ›์•„์™€๋„ ๋œ๋‹ค)

  • ์ตœ๋Œ€ ๊ฐ’ ์ฃผ๊ธฐ

    ๋ณธ์ธ์€ ํ‰์†Œ 987654321๊ณผ ๊ฐ™์ด ์ฃผ์—ˆ์œผ๋‚˜ ๊ทธ๋ƒฅ 1e9๋ผ๊ณ  ์ฃผ๋ฉด ํ—ท๊ฐˆ๋ฆด ์ผ๋„ ์—†์–ด ์ข‹๋‹ค.

 ์ฝ”๋“œ๋ฅผ ๋” ์‚ดํŽด๋ณด๋‹ˆ dfs๋ฅผ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•๋„ ์žˆ์—ˆ๋‹ค. ๋‚˜๋Š” bfs๋ฅผ ์ด์šฉํ–ˆ๋Š”๋ฐ ๋ณ„๋กœ ์ƒ๊ด€์€ ์—†์œผ๋‚˜ ์ด ๋•๋ถ„์— ๋” ๋ณต์žกํ•˜๊ฒŒ ์งœ๊ฒŒ ๋˜์–ด ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฐ ๊ฒƒ ๊ฐ™๋‹ค. ๋˜‘๊ฐ™์€ ๊ฐœ๋…์„ ํ™œ์šฉํ•ด์„œ dfs๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 ์ด๋Ÿฐ ์‹์œผ๋กœ 5์™€ 5~5555555๊นŒ์ง€์˜ ์ˆ˜๋ฅผ ๊ฐ๊ฐ ์‚ฌ์น™์—ฐ์‚ฐํ•œ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ๋“ค์„ ๋˜ 5~5555555๊นŒ์ง€์˜ ์ˆ˜์™€ ์‚ฌ์น™์—ฐ์‚ฐํ•œ๋‹ค. ์‚ฌ์น™์—ฐ์‚ฐํ•˜๋ฉด์„œ 5๊ฐ€ ๋ช‡๊ฐœ ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ์ง€๋Š” ์žฌ๊ท€ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„˜๊ธฐ๊ณ  ํ•ด๋‹น ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ 8์„ ๋„˜๊ฑฐ๋‚˜ ํ˜„์žฌ๊นŒ์ง€ ๋‚˜์˜จ ์ตœ์†Œ ๊ฒฝ์šฐ๋ณด๋‹ค ํฌ๋ฉด ๊ทธ๋ƒฅ returnํ•˜๋Š” ๊ธฐ์ €์‚ฌ๋ก€๋ฅผ ์•ž๋ถ€๋ถ„์— ์‚ฝ์ž…ํ•œ๋‹ค.

๋ฐ˜์‘ํ˜•