백준 15651 JavaScript
수정하기
문서 생성 2022-04-15 08:22:02 최근 수정 2022-04-15 21:05:28
문제
풀이
백준 15649, 백준 15650 과 유사하다. 이 문제는 중복된 숫자도 허용하기 때문에 중복을 확인하지 않고 순회를 하면서 다음 숫자도 재귀함수를 통해 순회한다.
console.log
를 매번 호출하면 시간초과가 되어서 전역 변수 answer
에 문자열을 추가하는 식으로 했다.
const readFileSyncPath = require('path').basename(__filename).replace(/js$/, 'txt');// const readFileSyncPath = '/dev/stdin';const input = require('fs').readFileSync(readFileSyncPath).toString().split(" ");// 자연수 N, Mconst [N, M] = input.map(Number);const arr = []let answer = ''const dfs = (cnt) => {// 길이 M까지 순회한 수를 출력if (cnt === M) {for (let val of arr) {answer += `${val} `}answer += `\n`return}// N까지의 수를 순회 (ex, N=3 -> 1, 2, 3)for (let i = 1; i <= N; i++) {arr[cnt] = i// 다음 수부터 순회dfs(cnt+1)}}dfs(0)console.log(answer)