본문 바로가기
자료구조&알고리즘/코딩테스트 문제연습

[코드트리 챌린지] 3주차 - K개 중 하나를 N번 선택하기(Simple) / 아름다운 수

by 복숭아 우유씨 2023. 9. 25.

1. 진단 결과

2. 학습 내용

문제 

https://www.codetree.ai/missions/2/problems/beautiful-number?&utm_source=clipboard&utm_medium=text

 

나의 풀이 (JS)

const fs = require('fs')
let input = fs.readFileSync('/dev/stdin').toString().trim().split('\n')

let answer = 0;

const n = +input[0];
const number = [];

const isBeutiful = (num) => {
  for (let i = 0; i < n; ) {
    let checkNum = num[i];
    let count = num[i];
    while (count) {
      if (num[i] !== checkNum) return false;
      count--;
      i++;
    }
  }
  return true;
};

function select(L, num) {
  if (L === n) {
    if (isBeutiful(number.join(""))) answer++;
    return;
  }

  for (let i = 1; i <= 4; i++) {
    number.push(i);
    select(L + 1, i);
    number.pop(i);
  }
}

for (let i = 1; i <= 4; i++) {
  number.push(i);
  select(1, i);
  number.pop(i);
}

console.log(answer);

 

댓글