Level2 - 모음사전

손대중·2022년 8월 1일
0

문제 설명 및 링크

https://school.programmers.co.kr/learn/courses/30/lessons/84512?language=javascript

나의 풀이

처음에는 뭔가 수학적 규칙을 찾아서 구현하려고 했는데... 못찾았음 ㅜㅜ

어차피 경우의 수가 많지는 않았기 때문에, 그냥 루프 돌려서 풀음

다른 사람 풀이 보니 더 간단히 푸는 방법이 많았음.

답은 등비수열이었던 듯...

직접 비교해보니 걍 루프 돌리는 건 약 0.3ms 정도 나오던데, 등비수열로 돌리면 0.05ms 정도 나옴.

차이가 확실히 남.

코드

모든 프로그래머스 문제 관련 코드들은 GitHub 링크 에 있음.

<script>
  const alphabet = ['A', 'E', 'I', 'O', 'U'];

  const check = (str, count, word) => {
      for (let i = 0; i < alphabet.length; i++) {
          const target = str + alphabet[i];
          count++;

          if (target === word) {
              return {success: true, count};
          }

          if (target.length < alphabet.length) {
              const result = check(target, count, word);
              if (result.success) {
                  return result;
              } else {
                  count = result.count;
              }
          }
      }

      return {success: false, count};
  };

  function solution(word) {
      return check('', 0, word).count;
  }
</script>

0개의 댓글