백준 15652 JavaScripit
수정하기
문서 생성 2022-04-15 10:46:02 최근 수정 2022-04-15 21:05:18
문제
풀이
백준 15649, 백준 15650, 백준 15651과 유사하다. 이번엔 중복도 되면서 비내림차순 수열이어야 한다. 첫 순회시에 1부터 순회하고 재귀함수를 벗어나면 그 다음수가 될 수 있도록 1을 더해준다.
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 = []const dfs = (at, cnt) => {let answer = ''// 길이 M까지 순회한 수를 출력if (cnt === M) {for (let val of arr) {answer += `${val} `}console.log(answer)return}// N까지의 수를 순회for (let i = at; i <= N; i++) {arr[cnt] = i// 다음 수부터 순회dfs(at, cnt+1)at = at+1 // 이전 값 다음 수를 하기 위해 +1}}dfs(1, 0)