Search

์กฐ์˜ˆ์ง€

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
3600
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
from collections import deque def solution(N, number): DP = [set() for _ in range(9)] pre = [N, N*11, N*111, N*1111, N*11111, N*111111, N*1111111] for i in range(len(pre)): if pre[i] == number: return i+1 DP[i+1].add(pre[i]) for i in range(2, 9): for j in range(1, i): for k in DP[i-j]: for h in DP[j]: DP[i].add(k+h) DP[i].add(k-h) DP[i].add(k*h) if h != 0: DP[i].add(k//h) if number in DP[i]: return i return -1
Java
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
์ฒ˜์Œ์—” ์ˆซ์ž๋กœ DP๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ์ˆซ์ž๊ฐ€ ๋„ˆ๋ฌด ์ปค์ ธ์„œ ์‹คํŒจํ•˜์˜€๋‹ค.
๋‘๋ฒˆ์งธ๋กœ N์ด ๋“ค์–ด๊ฐ€๋Š” ๊ฐฏ์ˆ˜๋กœ DP๋ฅผ ์ƒ์„ฑํ–ˆ๋Š”๋ฐ ๊ด„ํ˜ธ๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ๋ชปํ•ด์„œ ํ—ค๋งค๊ฒŒ๋˜์—ˆ๋‹ค.
DP์—๋Š” N 1๊ฐœ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด DP[1]์— ๋“ค์–ด๊ฐ€๊ณ , 2๊ฐœ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด DP[2]์— ๋“ค์–ด๊ฐ€๊ฒŒ ํ•  ๊ฒƒ์ด๋‹ค.
์ค‘๋ณต๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ set()์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
์ฒ˜์Œ์— N = 5 ๋ผ๊ณ  ํ•˜๋ฉด [5, 55, 555, 5555 ,.. 555555]๋ฅผ ๋„ฃ์–ด์ฃผ๊ณ  number์™€ ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์ด ์žˆ์œผ๋ฉด ๋ฐ”๋กœ ๋ฐ˜ํ™˜ํ•˜์˜€๋‹ค.
for DP์˜ ๊ธธ์ด๋งŒํผ i๋Š” 2์—์„œ 8๊นŒ์ง€ ๋Œ ๊ฒƒ์ด๋‹ค.:
for j๋Š” 1๋ถ€ํ„ฐ i-1๋กœ ์ด๋Š” ๊ด„ํ˜ธ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ธฐ์ค€์ด ๋œ๋‹ค:
(j๊ฐœ์˜ N์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜) + (i-j๊ฐœ์˜ N์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜)
(j๊ฐœ์˜ N์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜) - (i-j๊ฐœ์˜ N์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜)
(j๊ฐœ์˜ N์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜) * (i-j๊ฐœ์˜ N์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜)
(j๊ฐœ์˜ N์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜) // (i-j๊ฐœ์˜ N์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜) โ†’ 0์ด ์•„๋‹ ๋•Œ๋งŒ
๋งŒ๋“ค์–ด์ง„ ์ˆ˜ ์ค‘์— number๊ฐ€ ์žˆ์œผ๋ฉด i๋ฅผ ๋ฐ˜ํ™˜
8๊นŒ์ง€ ๋Œ์•˜๋Š”๋ฐ ์—†์œผ๋ฉด -1 ๋ฐ˜ํ™˜