Algorithm/์ธํ”„๋Ÿฐ(inflearn)

[ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(JavaScript) ] section08 - 2 - ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ์ด์ง„์ˆ˜ ์ถœ๋ ฅ

YWTechIT 2021. 9. 16. 12:13
728x90

๐Ÿ“ section08 - 2 - ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ์ด์ง„์ˆ˜ ์ถœ๋ ฅ

10์ง„์ˆ˜ N์„ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ €๋ฒˆ์— ํ’€์—ˆ๋˜ ์žฌ๊ท€ํ•จ์ˆ˜์—์„œ ์กฐ๊ธˆ ์‘์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋‹ค. ๋ฐฑ์ค€์—๋„ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ  ์ด์ง„์ˆ˜์™€ ๊ด€๋ จํ•œ ๋ฌธ์ œ์ธ ๋ฐฑ์ค€ 3460 - ์ด์ง„์ˆ˜ ๋ฌธ์ œ์˜€๋‹ค. ์žฌ๊ท€๋ฅผ ์ด์šฉํ•  ๋•Œ ์ดˆ๋ณด์ž๋Š” if-else๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ด ๋” ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค๊ณ  ์„ ์ƒ๋‹˜๊ป˜์„œ ๋ง์”€ํ•˜์…จ๋‹ค. ์ด์ง„์ˆ˜๋ฅผ ๊ตฌํ•˜๋ ค๋ฉด ์–ด๋–ค ์ˆ˜๋ฅผ ๋ชซ์ด 0์ด ๋  ๋•Œ๊นŒ์ง€ 2๋กœ ๊ณ„์† ๋‚˜๋ˆ„๋ฉด์„œ ๋‚˜๋จธ์ง€๋ฅผ ๋ˆ„์ ํ•˜๋Š”๋ฐ ์ด๋•Œ, ๋‚˜๋จธ์ง€๋ฅผ ๊ฑฐ๊พธ๋กœ ๋ˆ„์ ํ•ด์•ผ ์ด์ง„์ˆ˜๊ฐ€ ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 11์„ ์ด์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐํ•˜๋ฉด ๋œ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ  answer์ฝ”๋“œ๋ฅผ DFS ํ•จ์ˆ˜ ์œ„์— ์„ ์–ธํ•˜๋ƒ ๋ฐ‘์— ์„ ์–ธํ•˜๋ƒ์— ๋”ฐ๋ผ ๊ฐ’์ด ๋‹ฌ๋ผ์ง€๋Š”๋ฐ DFS ์œ„์— ์„ ์–ธํ•˜๊ฒŒ ๋˜๋ฉด ๋‚˜๋จธ์ง€๊ฐ€ ๋ฐ˜๋Œ€๋ฐฉํ–ฅ์œผ๋กœ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ์•Œ์•„๋‘์ž.

 

  1. level(L)์ด 0์ด ๋  ๋•Œ๊นŒ์ง€ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ๋Œ๋ฆฐ๋‹ค. 0์ด๋ฉด returnํ•œ๋‹ค.
  2. 0์ด ์•„๋‹ˆ๋ฉด ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ๋Œ๋ฆฌ๋Š”๋ฐ, ์ธ์ž๋Š” 2๋กœ ๋‚˜๋ˆˆ ๋ชซ์„ ๋„ฃ๋Š”๋‹ค.
  3. ๋ชจ๋“  ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ๋“ค๋ ค์„œ ๋‚˜์˜ฌ ์ฐจ๋ก€๊ฐ€ ๋˜๋ฉด ๋‚˜์˜ค๋ฉด์„œ ๋‚˜๋จธ์ง€๋ฅผ answer์— ๋„ฃ๋Š”๋‹ค.

 

728x90

 

let n = 11;

console.log(solution(n));

function solution(n){
  let answer="";
  function DFS(L){
    if (L === 0) return;
    else {
      DFS(Math.floor(L/2));
      answer+=(L%2)
    }  
  }
  DFS(n)
  return answer;
}
๋ฐ˜์‘ํ˜•