๐Ÿฐ

124 ๋‚˜๋ผ์˜ ์ˆซ์ž

๋ ˆ๋ฒจ
LV.2
๋‚ ์งœ
Sep 22, 2023

๐Ÿ”Ž ๋ฌธ์ œ


 

๐Ÿงฉ ๊ตฌํ˜„๊ณผ์ • ๋ฐ ์ฝ”๋“œ

๊ฐœ์ธ ํ† ๊ธ€ ์˜์—ญ์— ๊ตฌํ˜„ ๊ณผ์ •๊ณผ ์ฝ”๋“œ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์ž‘์„ฑํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ํ’€์ด ๋ฐฉํ–ฅ์„ฑ
์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ํ’€์ด ๋ฐฉํ–ฅ์„ฑ
์ ์šฉํ•  ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ˜น์€ ๋ฉ”์„œ๋“œ
์ ์šฉํ•  ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ˜น์€ ๋ฉ”์„œ๋“œ

์ˆ˜์˜


๊ตฌํ˜„

  • 1์˜ ์ž๋ฆฌ๊ฐ€ 1, 2, 4๋กœ ๋ฐ˜๋ณต๋˜๋‹ˆ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž(%)๋ฅผ ์‚ฌ์šฉํ•ด 0, 1, 2๋ฅผ ๋ณ€ํ™˜ํ•ด๋ณด์ž.
  • ์˜ฌ๋ฆผ ์ž๋ฆฌ *๋ง‰ํž˜
    • ํžŒํŠธ: n%3===0์ผ ๋•Œ๋งŒ (n / 3) - 1ํ•˜๋ฉด ๋˜๊ฒ ๋‹ค. ์กฐ๊ฑด 2๊ฐœ๋‹ˆ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉ
  • JavaScript ๊ตฌํ˜„ ํžŒํŠธ : while(n)

์ฝ”๋“œ

function solution(n) { var answer = ''; const world = [4,1,2]; while (n) { answer = world[n % 3] + answer; n = (n % 3 === 0) ? (n / 3) - 1 : Math.floor(n / 3); } return answer; }

์ •์€


๊ตฌํ˜„

๋งค๊ฐœ๋ณ€์ˆ˜ n์„ 3์œผ๋กœ ๋‚˜๋ˆˆ ๋’ค
  • ๋‚˜๋จธ์ง€ โ†’ 1์˜์ž๋ฆฌ ์ˆ˜๋กœ
  • ๋ชซ โ†’ 10์˜ ์ž๋ฆฌ ์ˆซ์ž๋กœ
    • n์ด 3์˜๋ฐฐ์ˆ˜ โ‡’ ๋ชซ-1๋กœ ๊ณ„์‚ฐ!
  • ๋ชซ์ด 0์ด ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์‚ฐํ•œ๋‹ค
 
0 โ†’ 4๋กœ ์น˜ํ™˜ํ•˜๊ณ , 1,2๋Š” ๊ฐ™๋‹ค.
 

์ฝ”๋“œ

def solution(n): answer = '' while n: if n%3: answer = str(n%3)+answer n//=3 else: answer = '4'+answer n=n//3-1 return answer

์ข…ํ˜


์ฝ”๋“œ

function solution(n) { const arr = ['4','1','2','4'] const str = [] if(n<=3){return arr[n]} while(n > 3){ if(n % 3 === 0){ str.unshift(arr[n%3]) n = Math.floor(n/3)-1 } else { str.unshift(arr[n%3]) n = Math.floor(n/3) } } str.unshift(arr[n]) return str.join('') }
 

์ ‘๊ทผ๋ฒ•

  • ์ฒ˜์Œ์—๋Š” 4 + 1 => 11๋กœ ๋„˜์–ด๊ฐ€๋Š” ๊ฑธ ์ด์šฉํ•ด์„œ 1๋ถ€ํ„ฐ n๊นŒ์ง€ ๊ตฌํ•ด๋ณด๋ ค ํ–ˆ์œผ๋‚˜ ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ๊นŒ์ง€ ํ†ต๊ณผํ•ด์•ผ ๋˜๊ธฐ ๋•Œ๋ฌธ์— 1๋ถ€ํ„ฐ n๊นŒ์ง€ ๋ฐ˜๋ณต๋ฌธ ๋Œ๋ฆฌ๋Š”๊ฑด ์‹œ๊ฐ„์ƒ ๋ถˆ๊ฐ€๋Šฅ
  • ์˜ˆ์ „์— ncs ๊ณต๋ถ€ํ•  ๋•Œ 10์ง„๋ฒ•์„ n์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊พธ๋Š” ๋ฌธ์ œ๊ฐ™์€๊ฑฐ ๋ณด๋ฉด ๋‚˜๋ˆ ์„œ ๋‚˜๋จธ์ง€๋ž‘ ๋ชซ์ด๋ž‘ ์ด์šฉํ•ด์„œ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š”๊ฑธ ๋ณธ ๊ธฐ์–ต์ด ๋‚˜์„œ 3๊ฐœ์”ฉ ๋ฐ˜๋ณต๋˜๋‹ˆ๊นŒ 3์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•ด๋ณด๋‹ˆ
4 / 3 = 1 , 4 % 3 = 1 => n=4์ผ๋•Œ ๋‹ต์€ 11 6 / 3 = 2, 6 % 3 = 0 => ??
n์ด 3์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ๊ฒฝ์šฐ์—๋Š” ์ •ํ™•ํ•˜์ง„ ์•Š์ง€๋งŒ ๋‚˜๋จธ์ง€๊ฐ€ 0์œผ๋กœ ๋‚˜์˜ค๋ฉด 4๋กœ ๋‚˜ํƒ€๋‚ด์•ผ ํ•˜๊ณ , ๋ชซ์€ -1์„ ํ•ด์ค˜์•ผ ๋˜๋‚˜? ๋ผ๋Š” ์ƒ๊ฐ์„ ํ•˜๊ฒŒ ๋จ
๊ทธ๋ž˜์„œ n์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ n / 3์˜ ๊ฐ’๊นŒ์ง€๋Š” ๊ตฌํ•ด์•ผ ๋˜๋‹ˆ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ ค๋ดค๋Š”๋ฐ, ์ •๋‹ต์€ ๋งž๋Š”๋ฐ ํšจ์œจ์„ฑ์—์„œ ํ†ต๊ณผ๋ฅผ ๋ชปํ•จ
 

ํ’€์ด

44๋ผ๋Š” ์ˆ˜๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค๋ฉด ๋ชซ:14 ๋‚˜๋จธ์ง€:2 โ†’ ์ด 14๋ผ๋Š” ์ˆ˜์˜ ๊ฐ’์„ ๊ตฌํ•ด์„œ ๊ทธ ๋’ค์— 2๋ฅผ ๋ถ™์—ฌ์ฃผ๋ฉด ๊ตฌํ•˜๋Š” ๋ฐฉ์‹
  • 14๋Š” ๋ชซ:4 ๋‚˜๋จธ์ง€:2 โ†’ 4๋ผ๋Š” ์ˆ˜๋ฅผ ๊ตฌํ•ด์„œ 2๋ฅผ ๋ถ™์—ฌ์ฃผ๋ฉด ๋จ
  • 4๋Š” ๋ชซ:1 ๋‚˜๋จธ์ง€:1์ด๋‹ˆ 11์ด๋ผ๋Š” ์ˆ˜๊ฐ€ ๋‚˜์˜ค๊ณ , 14๋Š” 11์— 2๋ฅผ ๋ถ™์—ฌ์„œ 112๊ณ , 44๋Š” 112์— 2๋ฅผ ๋ถ™์—ฌ์„œ 1122๊ฐ€ ๋จ
  • ํ•œ๋งˆ๋””๋กœ n์ด 3๋ณด๋‹ค ์ž‘์•„์งˆ๋•Œ๊นŒ์ง€ ๊ณ„์† ๋‚˜๋ˆ ์ฃผ๋ฉด์„œ ๊ตฌํ–ˆ๋˜ ๋‚˜๋จธ์ง€๋ฅผ ๊ณ„์† ๋’ค์— ๋ถ™์—ฌ์ฃผ๋ฉด ๋จ
  • 1,2,4๋งŒ ์“ธ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด์„ ์ด์šฉํ•ด์„œ ๋‚˜๋จธ์ง€๋ฅผ index๋กœ ์ด์šฉํ•ด์„œ ์‹ค์ œ ๊ฐ’์„ ๊ตฌํ•จ
์˜ˆ์™ธ ์ผ€์ด์Šค(?)
  • 45(๋ชซ:15,๋‚˜๋จธ์ง€:0) -> 15 + 4 ๋ถ™์—ฌ์คŒ
  • 15(๋ชซ:5,๋‚˜๋จธ์ง€:0) -> 5 + 4 ๋ถ™์—ฌ์คŒ
  • 5(๋ชซ:1,๋‚˜๋จธ์ง€:2) -> 12์ด์ œ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ€๋ฉด 1244๊ฐ€ ๋‹ต์ด์–ด์•ผ ํ•˜์ง€๋งŒ, ์ •๋‹ต์€ 1124
  • n์ด 3์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด ๋‚˜๋จธ์ง€๋Š” 4๊ฐ€ ๋˜๊ณ , ๊ทธ ๋‹ค์Œ์œผ๋กœ ๊ณ„์‚ฐํ•  n์— -1์„ ํ•ด์ค˜์•ผ ํ•จ

์žฌ์›…


๊ตฌํ˜„

1
1
6
14
2
2
7
21
3
4
8
22
4
11
9
24
5
12
10
41
11
42
17
122
12
44
18
124
13
111
19
141
14
112
20
142
15
114
21
144
16
121
22
211
  1. ๋”ฑํžˆ ์ ์šฉํ•  ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์—†์–ด๋ณด์ž„
  1. DP์™€ ์œ ์‚ฌํ•˜๊ฒŒ ์ž…๋ ฅ๊ฐ’ N์— ๋Œ€์‘ํ•˜๋Š” ๊ฐ’๋“ค์„ ๋ฐฐ์—ด์— ๋‹ด์•„๋†“์•„์•ผ ํ•˜๋Š”์ง€โ†’ 50,000,000 ๋ฒ”์œ„ ์ œํ•œ
  1. 3์ง„๋ฒ•(0,1,2)๋ฅผ 1,2,4๋กœ ๋ฐ”๊พธ๋ฉด ๋˜๋Š” ๊ฒƒ ์•„๋‹Œ์ง€?
      • 0,1,2๋Š” 3์˜ ๋‚˜๋จธ์ง€
      • ๋ณ€ํ™˜๋œ ์ˆ˜์˜ ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ๋Š” N%3์ด ๋งž์Œ (0โ†’4)
      • N์„ 3์œผ๋กœ ๋‚˜๋ˆˆ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•จ, ๋‚˜๋จธ์ง€๋Š” ์ œ์ผ ๋’ค์— ๋ถ™ํžˆ๊ณ  ๋ชซ์€ ์•ž์— ๋ถ™ํž˜. ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋ผ๋ฉด, 4๋กœ ๋ฐ”๊พธ๊ณ  ๋ชซ์—์„œ 1์„ ๋บŒ
      • ๋ชซ์„ ๋˜ 3์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋กœ ๋ถ„๋ฆฌ

์ฝ”๋“œ

function solution(n) { const stack = [] while(n>0){ let quo = Math.floor(n/3) let mod = n%3 if(mod===0){ stack.unshift(4) n=quo-1 } else{ stack.unshift(mod) n=quo } } return stack.join(''); } // 1. N์„ 3์œผ๋กœ ๋‚˜๋ˆˆ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ด // 2-1. ๋‚˜๋จธ์ง€๊ฐ€ 1,2์ผ ๊ฒฝ์šฐ ์ œ์ผ ๋’ค์— ๋ถ™ํž˜ // 2-2. ๋‚˜๋จธ์ง€๊ฐ€ 0์ผ ๊ฒฝ์šฐ, ๋ชซ์„ 1๋นผ๊ณ  ๋‚˜๋จธ์ง€๋ฅผ 4๋กœ ๋ณ€ํ™˜ // 3. ์ƒ๊ธด ๋ชซ์— ๋Œ€ํ•ด ํ•ด๋‹น ๊ณผ์ •์„ ๋ฐ˜๋ณต // 4. ๋ชซ์ด 0์ด ๋˜๊ฑฐ๋‚˜, ์Œ์ˆ˜๊ฐ€ ๋˜๋ฉด ํƒˆ์ถœ ํ›„ ๊ฒฐ๊ณผ๊ฐ’ ๋ฐ˜ํ™˜
5๏ธโƒฃ

โœ๏ธ ํ›„๊ธฐ

๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ๋А๋‚€ ์ , ๋ง‰ํ˜”๋˜ ๋ถ€๋ถ„ ํ˜น์€ ๊ฐœ์„  ์‚ฌํ•ญ ๋“ฑ์„ ์ž์œ ๋กญ๊ฒŒ ์ž‘์„ฑํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ‘ง๐Ÿป
์ˆ˜์˜
  1. ์‹œ๊ฐ„ ๋‚ด ๋ชป ํ’€์–ด์„œ ํžŒํŠธ๋ฅผ ์–ป์–ด๊ฐ€๋ฉฐ ํ’€์—ˆ๋‹ค. ์–ด์ œ ์ปคํ”ผ์ฑ—์—์„œ ๋ฉ˜ํ† ๋‹˜์˜ ๋ง์„ ๋“ฃ๊ณ  โ€˜์ดˆ๋ฐ˜์—๋Š” ๋ฌธ์ œ ํ‘ธ๋Š” ๋ฐ ์˜ค๋ž˜ ๊ณ ๋ฏผํ•˜๊ธฐ๋ณด๋‹ค ๋ฐฐ์šฐ๋Š” ๊ฒŒ ๋‚ซ๋‹ค.โ€™๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ์ฃ„์ฑ…๊ฐ ๊ฐ€์ง€์ง€ ์•Š๊ณ  ํžŒํŠธ๋ฅผ ์–ป์–ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.
  1. ๋ฌธ์ œ ์ดํ•ด + JavaScript ๋ฌธ๋ฒ• ์ ์šฉ์ด ๋ณ„๋„๋กœ ๋“ค์–ด์„œ ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค. ์šฐ์„  ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ๊ตฌ์กฐ ์งœ๋Š” ์—ฐ์Šต + JavaScript ๋ฌธ๋ฒ•์— ๋” ์ต์ˆ™ํ•ด์ง€๋Š” ์—ฐ์Šต์ด ํ•„์š”ํ•˜๋‹ค.
  1. ์˜ค๋žœ๋งŒ์— ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ํ’€๋‹ค ๋ณด๋‹ˆ ์ฒ˜์Œ ํ’€๋˜ ๋•Œ๋กœ ๋Œ์•„๊ฐ„ ๊ฒƒ ๊ฐ™์•˜๋‹ค.
๐Ÿ‘ง๐Ÿป
์ •์€
  1. ์ฒ˜์Œ์—๋Š” 3์ง„๋ฒ•๊ณผ ์œ ์‚ฌํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์ง€๋งŒ, ์ˆซ์ž๋ฅผ ์น˜ํ™˜ํ•˜๋Š” ๊ทœ์น™์„ ์ฐพ์ง€ ๋ชปํ–ˆ๋‹ค.
  1. ๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ œ์ผ ์›์ดˆ์ ์ธ ์™„์ „ํƒ์ƒ‰์„ ์‹œ๋„ํ–ˆ๋Š”๋ฐ, carry๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์‰ฝ์ง€ ์•Š์•˜๋‹ค.
  1. ๊ฒฐ๊ตญ ํ•ด์„ค์˜ ๋„์›€์„ ์‚ด์ง ๋ฐ›์•˜๋‹ค..ใ…Ž
  1. ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๊ตฌํ˜„ํ•˜๋ ค ํ–ˆ๋Š”๋ฐ ์‹œ๊ฐ„์ดˆ๊ณผ๋กœ ์‹คํŒจ! ๊ทธ๋ƒฅ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ณ„์‚ฐํ•˜๋ฉด ๋˜๋Š” ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์˜€๋‹ค.
  1. ์˜ค๋žœ๋งŒ์— ์ฝ”ํ…Œ ์—ฐ์Šต์ด๋ผ ์‰ฝ์ง€ ์•Š์•˜๋‹ค. ๋งค์ผ ์Šคํ„ฐ๋””ํ•˜๋ฉด์„œ ๊ฐ์„ ๋˜์ฐพ์•„์•ผ๊ฒ ๋‹ค!
๐Ÿ‘ฆ๐Ÿป
์ข…ํ˜
  1. ์ง์ ‘ ๊ณผ์ •์„ ํ•œ๋ฒˆ์”ฉ ์†์œผ๋กœ ์“ฐ๋ฉด์„œ ๋”ฐ๋ผ๊ฐ€๋ดค์œผ๋ฉด ์ƒ๊ฐ๋ณด๋‹ค ๋” ๋นจ๋ฆฌ ํ’€ ์ˆ˜ ์žˆ์—ˆ์„ ๊ฒƒ ๊ฐ™๋‹ค..
๐Ÿ‘ฆ๐Ÿป
์žฌ์›…
  1. ๊ทœ์น™์„ฑ๋งŒ ์ฐพ์œผ๋ฉด ๊ทธ๋ฆฌ ์–ด๋ ต์ง€ ์•Š๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์˜€์œผ๋‚˜, ์‰ฝ์ง€ ์•Š์•˜์Œ..