Make 1

10์˜ ๊ฒฝ์šฐ, โ‘  10->9->3->1 (3๋ฒˆ) โ‘ก10->5->4->2->1(4๋ฒˆ) ์ฃผ์–ด์ง„ ์—ฐ์‚ฐ ๋Œ€๋กœ๋ผ๋ฉด 2๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— โ‘ก์˜ ์ˆœ์„œ๋กœ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋งž์ง€๋งŒ, ๋ฐ˜๋ก€๊ฐ€ ์กด์žฌํ•œ๋‹ค. 1๋กœ ๋จผ์ € ๋นผ์ฃผ๋Š” ๊ฒƒ์ด ๋” ๋น ๋ฅด๊ฒŒ 1๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค.

๋”ฐ๋ผ์„œ ๋น„๊ตํ•ด์•ผํ•œ๋‹ค. 2๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€๋Š” ๊ฒฝ์šฐ๋ผ๋„, 2๋กœ ๋จผ์ € ๋‚˜๋ˆด์„ ๋•Œ๊ฐ€ ์—ฐ์‚ฐ ์ตœ์†Œ ํšŸ์ˆ˜์ธ์ง€, 1์„ ๋จผ์ € ๋บ์„ ๋•Œ๊ฐ€ ์—ฐ์‚ฐ ์ตœ์†Œ ํšŸ์ˆ˜์ธ์ง€.

d[10] = Math.min(go(5)+1,go(9)+1) = Math.min(go(n/2)+1,go(n-1)+1) => ์ฒซ๋ฒˆ์งธ ๋น„๊ต ๋Œ€์ƒ : go(n/2)+1์€ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ n/2๋ฅผ ์–ป๊ธฐ ๋•Œ๋ฌธ์— n=>n/2๋กœ 2๋กœ ๋‚˜๋ˆ„๋Š” ์—ฐ์‚ฐ์„ ํ•œ๋ฒˆ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—ฅ go(n/2)+1์ด ๋œ๋‹ค. => ๋‘๋ฒˆ์งธ ๋น„๊ต ๋Œ€์ƒ : go(n-1)+1 ์€ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ n-1์„ ์–ป๊ธฐ ๋•Œ๋ฌธ์— n=>n-1๋กœ 1 ๋นผ๋Š” ์—ฐ์‚ฐ์„ ํ•œ๋ฒˆ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— go(n-1) +1์ด ๋œ๋‹ค. d[10]์€ 2๊ฐœ ์ค‘์— ์ตœ์†Ÿ๊ฐ’์„ ์„ ํƒํ•œ๋‹ค! ๋‹ค๋ฅธ ์ˆซ์ž n๋“ค๋„ ใ…—๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, 1์„ ๋จผ์ € ๋บ์„ ๋•Œ ์—ฐ์‚ฐ ํšŸ์ˆ˜์™€ 2 ๋˜๋Š” 3์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์งˆ ๋•Œ ๋จผ์ € ใ„ด๋ˆ„๊ณ  ๋‚˜์„œ ๋งŒ๋“  ์—ฐ์‚ฐ ํšŸ์ˆ˜๋ฅผ ๋น„๊ตํ•ด์„œ ์ตœ์†Ÿ๊ฐ’์„ ์„ ํƒํ•œ๋‹ค!

Last updated