๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿ–ฅ dev-ruby

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][Lv.2] 124๋‚˜๋ผ์˜ ์ˆซ์ž | ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ | <์—ฐ์Šต๋ฌธ์ œ> ๋ณธ๋ฌธ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][Lv.2] 124๋‚˜๋ผ์˜ ์ˆซ์ž | ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ | <์—ฐ์Šต๋ฌธ์ œ>

ruby_s 2021. 12. 27. 15:56
728x90
๋ฐ˜์‘ํ˜•
SMALL

๋ฌธ์ œ ์„ค๋ช…

124 ๋‚˜๋ผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 124 ๋‚˜๋ผ์—์„œ๋Š” 10์ง„๋ฒ•์ด ์•„๋‹Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž์‹ ๋“ค๋งŒ์˜ ๊ทœ์น™์œผ๋กœ ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

  1. 124 ๋‚˜๋ผ์—๋Š” ์ž์—ฐ์ˆ˜๋งŒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  2. 124 ๋‚˜๋ผ์—๋Š” ๋ชจ๋“  ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ 1, 2, 4๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด์„œ 124 ๋‚˜๋ผ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ˆซ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.

10์ง„๋ฒ•124 ๋‚˜๋ผ10์ง„๋ฒ•124 ๋‚˜๋ผ
1 1 6 14
2 2 7 21
3 4 8 22
4 11 9 24
5 12 10 41

์ž์—ฐ์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, n์„ 124 ๋‚˜๋ผ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ˆซ์ž๋กœ ๋ฐ”๊พผ ๊ฐ’์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ
  • n์€ 500,000,000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜ ์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆnresult
1 1
2 2
3 4
4 11

 

๋‚ด๊ฐ€ ํ‘ผ ํ’€์ด

// ๋‚ด ํ’€์ด
function solution(n) {
    const num124 = ['4', '1', '2'];
    let result = "";
    while(n > 0){
        result = num124[n % 3] + result;
        n = Math.floor((n - 1) / 3);
    }
    return result;
}

 

๋‹ค๋ฅธ์‚ฌ๋žŒ ํ’€์ด

function solution(n) {
  return n === 0 ? '' : solution(parseInt((n - 1) / 3)) + [1, 2, 4][(n - 1) % 3];
}

: ์‹ ๊ธฐํ•˜๋‹ค.. ์–ด๋–ป๊ฒŒ ์ด๋ ‡๊ฒŒ ํ’€์—ˆ๋Š”์ง€

728x90
๋ฐ˜์‘ํ˜•
LIST