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

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋ชจ์Œ์‚ฌ์ „ ๋ณธ๋ฌธ

Study/Coding Test

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋ชจ์Œ์‚ฌ์ „

Jieunny 2023. 7. 27. 14:58

๐Ÿ“Œ  ๋ฌธ์ œ

์‚ฌ์ „์— ์•ŒํŒŒ๋ฒณ ๋ชจ์Œ 'A', 'E', 'I', 'O', 'U'๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”, ๊ธธ์ด 5 ์ดํ•˜์˜ ๋ชจ๋“  ๋‹จ์–ด๊ฐ€ ์ˆ˜๋ก๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ „์—์„œ ์ฒซ ๋ฒˆ์งธ ๋‹จ์–ด๋Š” "A"์ด๊ณ , ๊ทธ๋‹ค์Œ์€ "AA"์ด๋ฉฐ, ๋งˆ์ง€๋ง‰ ๋‹จ์–ด๋Š” "UUUUU"์ž…๋‹ˆ๋‹ค.
๋‹จ์–ด ํ•˜๋‚˜ word๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ด ๋‹จ์–ด๊ฐ€ ์‚ฌ์ „์—์„œ ๋ช‡ ๋ฒˆ์งธ ๋‹จ์–ด์ธ์ง€ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

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

๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋‹จ์–ด๋ฅผ DFS๋กœ ๋งŒ๋“ค๊ณ , ์ •๋ ฌํ•ด์„œ ์ฐพ๋Š” word์˜ index๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
๋ง์€ ์‰ฌ์šด๋ฐ DFS๊ฐ€ ๋„ˆ๋ฌด ์–ด๋ ค์›Œ์„œ ์—ฌ๊ธฐ์ €๊ธฐ ์ฐพ์•„๋ดค๋‹ค๐Ÿฅน
๐Ÿ“š ์ฐธ๊ณ  https://velog.io/@cyd5538/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%AA%A8%EC%9D%8C-%EC%82%AC%EC%A0%84-JS

 

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

// ์ฐธ๊ณ  ์ฝ”๋“œ์™€ ๋˜‘๊ฐ™๋‹ค!
function solution(word) {
  const words = [];
  const vowel = "AEIOU";
  for(let i=1; i<=5; i++){
    makeWords('', i);
  }

  return words.sort().indexOf(word) + 1;

  function makeWords(start, length) {
    if(length === 0) {
      words.push(start);
      return;
    }

    for(let i=0; i<vowel.length; i++){
      makeWords(start + vowel[i], length-1);
    }
  }
}