๐ข N์ผ๋ก ํํ
1. ๋ฌธ์ ๋งํฌ
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.