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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
"""
N์œผ๋กœ ํ‘œํ˜„

๐Ÿ’› ๋ฌธ์ œ
์•„๋ž˜์™€ ๊ฐ™์ด 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
"""

# N์œผ๋กœ ์‚ฌ์น™์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•ด์„œ number ์„ ๋งŒ๋“  ๊ฒƒ ์ค‘์— N ์„ ์‚ฌ์šฉํ•œ ํšŸ์ˆ˜ ์ตœ์†Ÿ๊ฐ’
def solution(N, number):
    num = [] # ์ˆซ์ž ์กฐํ•ฉ์„ ๋‹ด๋Š” ๋ฆฌ์ŠคํŠธ

    for i in range(1, 9):
        case = set()
        case.add(int(str(N)*i)) # ์ด์–ด๋ถ™์ด๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜

        # ์ˆซ์ž ์กฐํ•ฉ๋ผ๋ฆฌ์˜ ์‚ฌ์น™์—ฐ์‚ฐ
        for j in range(0, i-1):
            for x in num[j]:    # (1, n-1) ๋ถ€ํ„ฐ (n-1, 1)๊นŒ์ง€
                for y in num[-j-1]:
                    case.add(x + y)
                    case.add(x - y)
                    case.add(x * y)
                    # 0 ์œผ๋กœ ์•ˆ๋‚˜๋ˆ ์ง
                    if x != 0 :
                        case.add(y // x)
                    if y != 0 :
                        case.add(x // y)

        # ์ˆซ์ž ์กฐํ•ฉ์— number ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ
        if number in case:
            return i

        # ์ˆซ์ž ์กฐํ•ฉ์— number ๊ฐ€ ์—†์œผ๋ฉด ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€
        num.append(case)

    return -1


  • ์ •ํ™•์„ฑ

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
      ์ •ํ™•์„ฑ  ํ…Œ์ŠคํŠธ
      ํ…Œ์ŠคํŠธ 1 ใ€‰	ํ†ต๊ณผ (1.25ms, 10.4MB)
      ํ…Œ์ŠคํŠธ 2 ใ€‰	ํ†ต๊ณผ (0.02ms, 10.5MB)
      ํ…Œ์ŠคํŠธ 3 ใ€‰	ํ†ต๊ณผ (0.04ms, 10.4MB)
      ํ…Œ์ŠคํŠธ 4 ใ€‰	ํ†ต๊ณผ (18.52ms, 11.3MB)
      ํ…Œ์ŠคํŠธ 5 ใ€‰	ํ†ต๊ณผ (26.13ms, 11.2MB)
      ํ…Œ์ŠคํŠธ 6 ใ€‰	ํ†ต๊ณผ (0.19ms, 10.3MB)
      ํ…Œ์ŠคํŠธ 7 ใ€‰	ํ†ต๊ณผ (0.20ms, 10.4MB)
      ํ…Œ์ŠคํŠธ 8 ใ€‰	ํ†ต๊ณผ (18.00ms, 11.2MB)
      ํ…Œ์ŠคํŠธ 9 ใ€‰	ํ†ต๊ณผ (0.02ms, 10.3MB)
      ์ฑ„์  ๊ฒฐ๊ณผ
      ์ •ํ™•์„ฑ: 100.0
      ํ•ฉ๊ณ„: 100.0 / 100.0
    


3. ํ•ด์„ค

  • ์ง‘ํ•ฉ์„ ๋งŒ๋“ค๋ฉด์„œ ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ์ˆ˜ number ์žˆ์œผ๋ฉด i ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค
  • (1, n-1) ๋ถ€ํ„ฐ (n-1, 1)๊นŒ์ง€ ์‚ฌ์น™์—ฐ์‚ฐ์„ set ์— ๋„ฃ๋Š”๋‹ค
This post is licensed under CC BY 4.0 by the author.