Post

๐Ÿน N์œผ๋กœ ํ‘œํ˜„

1. ๋ฌธ์ œ ๋งํฌ

N์œผ๋กœ ํ‘œํ˜„


2. ์ฝ”๋“œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def solution(N, number):
    # ์ด์–ด ๋ถ™์ธ ์ˆซ์ž ์ดˆ๊ธฐํ™” 
    dp = [set([int(str(N)*i)]) for i in range(1, 9)]
    
    # N ์‚ฌ์šฉ ํšŸ์ˆ˜
    for cnt in range(8):
        for i in range(cnt):
            # N์˜ ์ด ์นด์šดํŠธ ๊ฐœ์ˆ˜ ์ค‘ i๊ฐœ
            for num1 in dp[i]:
                # N์˜ ์ด ์นด์šดํŠธ ๊ฐœ์ˆ˜ ์ค‘ i๊ฐœ๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€
                for num2 in dp[cnt-i-1]:
                    dp[cnt].add(num1 + num2)
                    dp[cnt].add(num1 - num2)
                    dp[cnt].add(num1 * num2)
                    if num2 != 0:
                        dp[cnt].add(num1 // num2)
        # number๊ฐ€ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ์— ์žˆ์œผ๋ฉด ๋ฆฌํ„ด
        if number in dp[cnt]:
            return cnt + 1
        
    return -1

  • ์ •ํ™•์„ฑ

    ํ…Œ์ŠคํŠธ 1 ใ€‰ํ†ต๊ณผ (0.86ms, 10.4MB)
    ํ…Œ์ŠคํŠธ 2 ใ€‰ํ†ต๊ณผ (0.03ms, 10.4MB)
    ํ…Œ์ŠคํŠธ 3 ใ€‰ํ†ต๊ณผ (0.06ms, 10.1MB)
    ํ…Œ์ŠคํŠธ 4 ใ€‰ํ†ต๊ณผ (27.03ms, 11.1MB)
    ํ…Œ์ŠคํŠธ 5 ใ€‰ํ†ต๊ณผ (13.39ms, 10.9MB)
    ํ…Œ์ŠคํŠธ 6 ใ€‰ํ†ต๊ณผ (0.21ms, 10.3MB)
    ํ…Œ์ŠคํŠธ 7 ใ€‰ํ†ต๊ณผ (0.20ms, 10.4MB)
    ํ…Œ์ŠคํŠธ 8 ใ€‰ํ†ต๊ณผ (20.73ms, 11.3MB)
    ํ…Œ์ŠคํŠธ 9 ใ€‰ํ†ต๊ณผ (0.03ms, 10.2MB)


3. ํ•ด์„ค

N์„ ์‚ฌ์šฉํ•œ ์ˆ˜๊ฐ€ ์ตœ์†Œ๊ฐ€ ๋˜๋„๋ก ํ•˜์—ฌ ๊ฐ’์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด N์„ 1๊ฐœ๋ถ€ํ„ฐ 8๊ฐœ๊นŒ์ง€ ์ฐจ๋ก€๋Œ€๋กœ ์‚ฌ์šฉํ•ด๋ณด๋ฉฐ ๊ทธ ์ค‘ number๊ฐ€ ์žˆ์„ ์‹œ์˜ N์˜ ์‚ฌ์šฉ ๊ฐœ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•ด์ค€๋‹ค.

N์„ 1๊ฐœ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ โ†’ N (ํ•œ ๊ฐœ)

N์„ 2๊ฐœ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ โ†’ NN, N + N, N - N, N * N, N / N (๋‹ค์„ฏ ๊ฐœ)

์ฐจ๋ก€๋Œ€๋กœ ๋‚˜์—ดํ•˜๋‹ค๋ณด๋ฉด N์„ 8๊ฐœ ์‚ฌ์šฉํ–ˆ์„ ๊ฒฝ์šฐ๋Š” NNNNNNNN์„ ๋‚˜์—ดํ•œ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š”

(N์„ i๊ฐœ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ๊ฒฐ๊ณผ ๊ฐ’๋“ค)๊ณผ (N์„ 8-i๊ฐœ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ๊ฒฐ๊ณผ ๊ฐ’๋“ค) ์ด ๋‘ ๊ฐ€์ง€ ์ผ€์ด์Šค๋ฅผ ์—ฐ์‚ฐํ•œ ๊ฒฝ์šฐ๊ฐ€ 8๊ฐœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์‚ฐํ•œ ์ผ€์ด์Šค๋“ค์˜ ๊ฒฐ๊ณผ๊ฐ’์ด๋‹ค.

๋”ฐ๋ผ์„œ dp๋ฅผ N์„ ๋‚˜์—ดํ•œ ๊ฒฝ์šฐ๋กœ ์ดˆ๊ธฐํ™” ํ•ด์ค€ ํ›„, 1๋ถ€ํ„ฐ 8๊นŒ์ง€ ์ˆœ์„œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ์— ๋„ฃ์–ด์ค€๋‹ค.

์ด๋•Œ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๊ฐ’๋“ค ์ค‘ number๊ฐ€ ์žˆ๋‹ค๋ฉด(๊ฐ€์žฅ ๋จผ์ € ๋ฐœ๊ฒฌ) ์‚ฌ์šฉํ•œ N์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•ด์ค€๋‹ค.

๋งŒ์•ฝ 8๋ฒˆ๊นŒ์ง€ ๊ณ„์‚ฐ ์ค‘์—์„œ๋„ number๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค๋ฉด -1์„ ๋ฆฌํ„ดํ•ด์ค€๋‹ค.

This post is licensed under CC BY 4.0 by the author.