โ๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/42895
๋ฉ๋ชจ๋ฆฌ: 11 MB, ์๊ฐ: 19.30 ms
์๋์ ๊ฐ์ด 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๊ฐ ๊ฐ๋ค๋ฉด ๋ฌด์กฐ๊ฑด ์ต์๊ฐ์ 1์ด ๋ ์ ๋ฐ์ ์์ผ๋ฏ๋ก ๊ฐ์ ๊ฒฝ์ฐ์๋ 1์ ๋ฐํํ๋ค.
N์ ๋ ๋ฒ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ 55, 5/5, 5x5, 5+5, 5-5๊ฐ ์๋ค. ์ด๊ฑธ ์ ์๊ฐํด๋ณด๋ฉด N๊ณผ ์ฐ์ฐ์ ์กฐํฉ์ ์ด์ฉํ์ฌ ๋ ๋ฒ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ฅผ ๊ตฌํ ์ ์๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
๊ทธ๋ผ N์ ์ธ ๋ฒ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ N์ ๋ ๋ฒ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์ฐ์ฐ์, ๊ทธ๋ฆฌ๊ณ N์ ํ ๋ฒ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ์กฐํฉ์ด๋ผ๊ณ ์๊ฐํ ์ ์๋ค.
์๋ฅผ ๋ค์ด, N์ ๋ ๋ฒ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ก 5+5, ์ฐ์ฐ์๋ -, 5๋ผ๊ณ ํ๋ฉด ์ด ์กฐํฉ์ 5 + 5 - 5๊ฐ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์์๊ฐ ์ ํด์ ธ ์๋ ๊ฒ์ด ์๋๋ฏ๋ก ๋ฐ๋๋ก 5 - 5 + 5 ์กฐํฉ๋ ๋๋ค. 55 + 5์ 5 + 55์ ๊ฒฝ์ฐ์๋ ๊ฐ์ด ๊ฐ๋ค. ๊ทธ๋ฌ๋ฏ๋ก set์ ์ด์ฉํ์ฌ ์ค๋ณต๋ ๊ฐ์ ์กด์ฌํ์ง ์๋๋ก ํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์ฝ์ฌํญ์์ ์ต์๊ฐ์ด 8๋ณด๋ค ํฐ ๊ฒฝ์ฐ๋ -1์ ๋ฐํํ๋ผ๊ณ ํ์ผ๋ฏ๋ก for๋ฌธ์ ๋๋ฉฐ ๋ฐ๊ฒฌ๋์ง ์์ ๊ฒฝ์ฐ -1์ ๋ฐํํ๋ฉด ๋๋ค.
๐ป์ฝ๋
def solution(N, number):
if N == number:
return 1
dp = [set() for _ in range(9)]
dp[1].add(N)
x = N
for i in range(2, 9):
dp.append(set())
x = 10 * x + N
dp[i].add(x)
for j in range(i):
for op1 in dp[j]:
for op2 in dp[i-j]:
dp[i].add(op1 + op2)
dp[i].add(op1 - op2)
dp[i].add(op1 * op2)
if op2 != 0:
dp[i].add(op1 // op2)
if number in dp[i]:
return i
return -1
๐ํ๊ธฐ
DP๋ ๋ง๋๋ฐ ๊ฐ๋จํ DP ๋ฌธ์ ๋ง ๋ณด๋ค๋ณด๋ ์ด๋ฐ DP๋ฌธ์ ๋ฅผ ๋ณด๋ฉด ์ด๋ป๊ฒ ํ์ด์ผํ ์ง ๊ฐ์ด ์ ์กํ์ง ์๋๋ค. ์กฐํฉํ๋ฉด ๋๋ค๊ณ ์๊ฐํ๊ณ ๊ทธ ์ด์์ผ๋ก๋ ์๊ฐํ์ง ๋ชปํ๋ ๋ด ์์ ์ด ๋๋ฌด ๋ต๋ต..
'Coding Test > Algorithms' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 1931.ํ์์ค ๋ฐฐ์ /Python - Silver1 (1) | 2024.11.28 |
---|---|
[Baekjoon] 1541.์์ด๋ฒ๋ฆฐ ๊ดํธ/Python - Silver2 (0) | 2024.11.27 |
[SWEA] 1215. ํ๋ฌธ1/Python - D3 (0) | 2024.11.16 |
[SWEA] 1289.์์ฌ์ ๋ฉ๋ชจ๋ฆฌ ๋ณต๊ตฌํ๊ธฐ/Python - D3 (2) | 2024.11.14 |
[SWEA] 1225.์ํธ์์ฑ๊ธฐ/Python - D3 (1) | 2024.11.13 |