하루 알고리즘(JS)

    [바미] 하노이 탑 이동 순서

    문제  https://www.acmicpc.net/problem/11729코드const fs = require('fs');const input = fs.readFileSync('/dev/stdin').toString().trim();const N = parseInt(input, 10);let result = [];let moveCount = 0;function hanoi(n, from, to, aux) { if (n === 1) { result.push(`${from} ${to}`); moveCount++; return; } hanoi(n - 1, from, aux, to); result.push(`${from} ${to}`); moveCo..

    [바미] 인사성 밝은 곰곰이

    문제https://www.acmicpc.net/problem/25192 코드const fs = require('fs');const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');const N = parseInt(input[0], 10);const records = input.slice(1);let greetingCount = 0;let enteredUsers = new Set();for (const record of records) { if (record === 'ENTER') { // 새로운 사람이 입장하면, Set을 초기화하여 새로운 그룹을 시작한다. enteredUsers = new Set();..

    [바미] queuestack

    문제https://www.acmicpc.net/problem/24511코드const fs = require('fs');const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');const n = parseInt(input[0], 10);const A = input[1].split(' ').map(Number);const B = input[2].split(' ').map(Number);const m = parseInt(input[3], 10);const C = input[4].split(' ').map(Number);const ret = [];function solve(n, m, A, B, C) { let count = 0; ..

    [바미] 랜덤 게임~~

    문제https://www.acmicpc.net/problem/10944 코드// 1부터 10,000까지의 랜덤한 정수를 생성하여 출력.const randomInt = Math.floor(Math.random() * 10000) + 1;console.log(randomInt);문제해설이 문제는 채점 될 때 문제와 콘솔에 출력된 수와 맞아야 정답으로 인정해주는 문젭니다. 왜 계속 틀리나 했더니 위 이유로 그랬던 거더군요

    [바미] 별 찍기 - 10

    문제https://www.acmicpc.net/problem/2447 코드const fs = require('fs');const input = fs.readFileSync('/dev/stdin').toString().trim();const N = parseInt(input, 10);function generateStarPattern(size) { if (size === 1) { return ['*']; } const subPattern = generateStarPattern(size / 3); const pattern = []; for (let i = 0; i  generateStarPattern(size) 함수는 재귀적으로 크기 size의 패턴을 생성해줍니다. g..

    [바미] 칸토어 집합

    문제https://www.acmicpc.net/problem/4779코드const fs = require('fs');const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');function generateCantorSet(N) { if (N === 0) return '-'; const prevSet = generateCantorSet(N - 1); const space = ' '.repeat(prevSet.length); return prevSet + space + prevSet;}const results = input.map(line => { const N = parseInt(line, ..

    알고리즘 수업 - 병합 정렬 1

    문제https://www.acmicpc.net/problem/24060 코드const fs = require('fs');const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');const [N, K] = input[0].split(' ').map(Number);const A = input[1].split(' ').map(Number);let saveCount = 0;let result = -1;function merge_sort(A, p, r) { if (p 문제 해설병합 정렬(Merge Sort)을 수행하면서 K번째 저장되는 수를 추적하는 문제입니다. 따라서 주어진 배열을 병합 정렬하면서, 저장되는 수를 카운트하고 K번째에..

    [바미] 재귀의 귀재

    문제https://www.acmicpc.net/problem/25501 코드const fs = require('fs');const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');const T = parseInt(input[0], 10);const cases = input.slice(1);function recursion(s, l, r, count) { count.count++; if (l >= r) return [1, count.count]; else if (s[l] !== s[r]) return [0, count.count]; else return recursion(s, l + 1, r - 1, count)..

    [바미] 피보나치 수 5

    문제https://www.acmicpc.net/problem/10870코드const fs = require('fs');const input = fs.readFileSync('/dev/stdin').toString().trim();const n = parseInt(input, 10);function fibonacci(n) { if (n === 0) { return 0; } else if (n === 1) { return 1; } else { return fibonacci(n - 1) + fibonacci(n - 2); }}const result = fibonacci(n);console.log(result);문제 해설이번 문제는 출제자가 재귀 함수를..