Jieunny์˜ ๋ธ”๋กœ๊ทธ

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ ํ”„์™€ ์ˆœ๊ฐ„์ด๋™ ๋ณธ๋ฌธ

Study/Coding Test

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ ํ”„์™€ ์ˆœ๊ฐ„์ด๋™

Jieunny 2023. 2. 21. 17:12

๐Ÿ“Œ  ๋ฌธ์ œ

OO ์—ฐ๊ตฌ์†Œ๋Š” ํ•œ ๋ฒˆ์— K ์นธ์„ ์•ž์œผ๋กœ ์ ํ”„ํ•˜๊ฑฐ๋‚˜, (ํ˜„์žฌ๊นŒ์ง€ ์˜จ ๊ฑฐ๋ฆฌ) x 2 ์— ํ•ด๋‹นํ•˜๋Š” ์œ„์น˜๋กœ ์ˆœ๊ฐ„์ด๋™์„ ํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ์•„์ด์–ธ ์ŠˆํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜์—ฌ ํŒ๋งคํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์•„์ด์–ธ ์ŠˆํŠธ๋Š” ๊ฑด์ „์ง€๋กœ ์ž‘๋™๋˜๋Š”๋ฐ, ์ˆœ๊ฐ„์ด๋™์„ ํ•˜๋ฉด ๊ฑด์ „์ง€ ์‚ฌ์šฉ๋Ÿ‰์ด ์ค„์ง€ ์•Š์ง€๋งŒ, ์•ž์œผ๋กœ K ์นธ์„ ์ ํ”„ํ•˜๋ฉด K ๋งŒํผ์˜ ๊ฑด์ „์ง€ ์‚ฌ์šฉ๋Ÿ‰์ด ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์•„์ด์–ธ ์ŠˆํŠธ๋ฅผ ์ฐฉ์šฉํ•˜๊ณ  ์ด๋™ํ•  ๋•Œ๋Š” ์ˆœ๊ฐ„ ์ด๋™์„ ํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ์•„์ด์–ธ ์ŠˆํŠธ ๊ตฌ๋งค์ž๋Š” ์•„์ด์–ธ ์ŠˆํŠธ๋ฅผ ์ฐฉ์šฉํ•˜๊ณ  ๊ฑฐ๋ฆฌ๊ฐ€ N ๋งŒํผ ๋–จ์–ด์ ธ ์žˆ๋Š” ์žฅ์†Œ๋กœ ๊ฐ€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, ๊ฑด์ „์ง€ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ ํ”„๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์€ ์ตœ์†Œ๋กœ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์•„์ด์–ธ ์ŠˆํŠธ ๊ตฌ๋งค์ž๊ฐ€ ์ด๋™ํ•˜๋ ค๋Š” ๊ฑฐ๋ฆฌ N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฑด์ „์ง€ ์‚ฌ์šฉ๋Ÿ‰์˜ ์ตœ์†Ÿ๊ฐ’์„ returnํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์„ธ์š”.

์˜ˆ๋ฅผ ๋“ค์–ด ๊ฑฐ๋ฆฌ๊ฐ€ 5๋งŒํผ ๋–จ์–ด์ ธ ์žˆ๋Š” ์žฅ์†Œ๋กœ ๊ฐ€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์•„์ด์–ธ ์ŠˆํŠธ๋ฅผ ์ž…๊ณ  ๊ฑฐ๋ฆฌ๊ฐ€ 5๋งŒํผ ๋–จ์–ด์ ธ ์žˆ๋Š” ์žฅ์†Œ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

  • ์ฒ˜์Œ ์œ„์น˜ 0 ์—์„œ 5 ์นธ์„ ์•ž์œผ๋กœ ์ ํ”„ํ•˜๋ฉด ๋ฐ”๋กœ ๋„์ฐฉํ•˜์ง€๋งŒ, ๊ฑด์ „์ง€ ์‚ฌ์šฉ๋Ÿ‰์ด 5 ๋งŒํผ ๋“ญ๋‹ˆ๋‹ค.
  • ์ฒ˜์Œ ์œ„์น˜ 0 ์—์„œ 2 ์นธ์„ ์•ž์œผ๋กœ ์ ํ”„ํ•œ ๋‹ค์Œ ์ˆœ๊ฐ„์ด๋™ ํ•˜๋ฉด (ํ˜„์žฌ๊นŒ์ง€ ์˜จ ๊ฑฐ๋ฆฌ : 2) x 2์— ํ•ด๋‹นํ•˜๋Š” ์œ„์น˜๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์œ„์น˜ 4๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ 1 ์นธ์„ ์•ž์œผ๋กœ ์ ํ”„ํ•˜๋ฉด ๋„์ฐฉํ•˜๋ฏ€๋กœ ๊ฑด์ „์ง€ ์‚ฌ์šฉ๋Ÿ‰์ด 3 ๋งŒํผ ๋“ญ๋‹ˆ๋‹ค.
  • ์ฒ˜์Œ ์œ„์น˜ 0 ์—์„œ 1 ์นธ์„ ์•ž์œผ๋กœ ์ ํ”„ํ•œ ๋‹ค์Œ ์ˆœ๊ฐ„์ด๋™ ํ•˜๋ฉด (ํ˜„์žฌ๊นŒ์ง€ ์˜จ ๊ฑฐ๋ฆฌ : 1) x 2์— ํ•ด๋‹นํ•˜๋Š” ์œ„์น˜๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์œ„์น˜ 2๋กœ ์ด๋™๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋‹ค์‹œ ์ˆœ๊ฐ„์ด๋™ ํ•˜๋ฉด (ํ˜„์žฌ๊นŒ์ง€ ์˜จ ๊ฑฐ๋ฆฌ : 2) x 2 ๋งŒํผ ์ด๋™ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์œ„์น˜ 4๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ 1 ์นธ์„ ์•ž์œผ๋กœ ์ ํ”„ํ•˜๋ฉด ๋„์ฐฉํ•˜๋ฏ€๋กœ ๊ฑด์ „์ง€ ์‚ฌ์šฉ๋Ÿ‰์ด 2 ๋งŒํผ ๋“ญ๋‹ˆ๋‹ค.

์œ„์˜ 3๊ฐ€์ง€ ๊ฒฝ์šฐ ๊ฑฐ๋ฆฌ๊ฐ€ 5๋งŒํผ ๋–จ์–ด์ ธ ์žˆ๋Š” ์žฅ์†Œ๋กœ ๊ฐ€๊ธฐ ์œ„ํ•ด์„œ 3๋ฒˆ์งธ ๊ฒฝ์šฐ๊ฐ€ ๊ฑด์ „์ง€ ์‚ฌ์šฉ๋Ÿ‰์ด ๊ฐ€์žฅ ์ ์œผ๋ฏ€๋กœ ๋‹ต์€ 2๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์‚ฌํ•ญ
  • ์ˆซ์ž N: 1 ์ด์ƒ 10์–ต ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜
  • ์ˆซ์ž K: 1 ์ด์ƒ์˜ ์ž์—ฐ์ˆ˜

 

๐Ÿ’ก  ์•„์ด๋””์–ด

n์ด ์ง์ˆ˜์ธ ๊ฒฝ์šฐ, ํ™€์ˆ˜์ธ ๊ฒฝ์šฐ๋ฅผ ๋‚˜๋ˆ ์„œ 0์—์„œ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ n์—์„œ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ 0์œผ๋กœ ์˜ค๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค.

n์ด ์ง์ˆ˜์ด๋ฉด 2๋กœ ๋‚˜๋ˆ ์„œ ์ˆœ๊ฐ„์ด๋™ ํ•˜๋ฏ€๋กœ ๊ฑด์ „์ง€ ์‚ฌ์šฉ๋Ÿ‰์€ ๋Š˜์ง€ ์•Š๊ณ , n์ด ํ™€์ˆ˜๋ฉด -1ํ•ด์ค˜์„œ ๊ฑด์ „์ง€ ์‚ฌ์šฉ๋Ÿ‰์„ +1 ํ•ด์ค€ ๋‹ค์Œ์— ์ง์ˆ˜๊ฐ€ ๋œ n์„ ๋‹ค์‹œ 2๋กœ ๋‚˜๋ˆ ์„œ ์ˆœ๊ฐ„์ด๋™ ํ•œ๋‹ค.

n์ด 0์ด ๋ ๋•Œ๊นŒ์ง€ ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

โœ๏ธ  ํ’€์ด

function solution(n){
    var ans = 0;

    while(n !== 0){
      if(n % 2 === 0){
        n /= 2;
      }
      else {
        ans++;
        n--;
      }
    }

    return ans;
}