백준[node.js] > 15650번 제출

2024. 11. 21. 23:37·🔒Algorithm

 

문제링크

https://www.acmicpc.net/problem/15650

 

풀이-1

let fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString();

const [N, M] = input.split(" ").map((n) => parseInt(n));

if (N === M) {
    answer = "";
    for (let i = 1; i <= N; ++i) {
        answer += `${i} `;
    }
    console.log(answer.trim());
} else {
    let answer = "";
    let rest = M;

    let recursive = (start, rest, arr) => {
        if (rest === 0) {
            answer = answer + `${arr.join(" ")}\n`;
        } else {
            for (let i = start; i <= N; ++i) {
                if (rest - 1 <= N - i) {
                    recursive(i + 1, rest - 1, [...arr, i]);
                }
            }
        }
    };
    recursive(1, rest, []);
    console.log(answer.trim());
}

 

풀이-2

같은 문제를 다른 방식으로도 풀어봤다.

let fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString();

const [N, M] = input.split(" ").map((n) => parseInt(n));

if (N === M) {
    answer = "";
    for (let i = 1; i <= N; ++i) {
        answer += `${i} `;
    }
    console.log(answer.trim());
} else {
    let visited = Array(N + 1).fill(false);

    let arr = [];
    let answer = "";

    let dfs = (start, cnt) => {
        if (cnt === M) {
            answer = answer + `${arr.join(" ")}\n`;
            return;
        }

        for (let i = start; i <= N; ++i) {
            if (!visited[i]) {
                visited[i] = true;
                arr.push(i);
                dfs(i + 1, cnt + 1);
                visited[i] = false;
                arr.pop();
            }
        }
    };

    dfs(1, 0);
    console.log(answer.trim());
}

 

 

 

'🔒Algorithm' 카테고리의 다른 글

백준[node.js] > 16953번 A->B  (0) 2024.11.24
백준[node.js] > 9095번 1, 2, 3 더하기  (0) 2024.11.23
백준[node.js] > 1966번 제출  (0) 2024.11.20
백준 [nodejs] > 1629번 곱셈  (0) 2024.11.17
백준 [node.js] > 1916번 최소 비용 구하기  (1) 2024.11.16
'🔒Algorithm' 카테고리의 다른 글
  • 백준[node.js] > 16953번 A->B
  • 백준[node.js] > 9095번 1, 2, 3 더하기
  • 백준[node.js] > 1966번 제출
  • 백준 [nodejs] > 1629번 곱셈
devWarrior
devWarrior
  • devWarrior
    devWarrior
    devWarrior
  • 전체
    오늘
    어제
    • 🧩Dev (263)
      • ⭐FE (34)
      • 🔒Algorithm (155)
      • ➕Etc. (11)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    자스
    js
    그리디
    BFS
    react
    프로그래머스
    node.js
    자바스크립트
    DFS
    Lv2
    백준
    dp
    FE
    실버2
    프론트엔드
    알고리즘
    오블완
    Algorithm
    실버4
    골드5
    실버1
    코테
    티스토리챌린지
    실버3
    구현
    javascript
    nodejs
    Easy
    leetcode
    코딩테스트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
devWarrior
백준[node.js] > 15650번 제출
상단으로

티스토리툴바