[노드JS/알고리즘] 백준 - 1063번 킹
알고리즘/백준 2022. 6. 30. 22:19

[문제] 1063번: 킹 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 www.acmicpc.net [코드 풀이] let [positions, ...commands] = require("fs") .readFileSync(process.platform === "linux" ? "/dev/stdin" : "input.txt") .toString() .trim() .split("\n"); // A-H열을 숫자로 라벨링 const pos = { A: 1, B: 2, C: 3, D: 4, E: 5, F: 6, G: 7, H: 8, }; // 방향 정의 const move..

[노드JS/알고리즘] 백준 - 17609번 회문
알고리즘/백준 2022. 6. 4. 18:04

[문제] 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net [메모리 초과 뜬 코드] const [_, ...words] = require("fs") .readFileSync(process.platform === "linux" ? "/dev/stdin" : "input.txt") .toString() .trim() .split("\n"); const result = []; for (const word of words) { if (word === word.split("").reverse().join("")) result.push(0); // 회문..

[노드JS/알고리즘] 백준 - 1213번 팰린드롬 만들기
알고리즘/백준 2022. 6. 1. 13:40

[문제]

[노드JS/알고리즘] 백준 - 3568번 iSharp
알고리즘/백준 2022. 5. 30. 22:31

[문제] 3568번: iSharp 입력으로 주어진 변수 선언문을 문제의 조건에 맞게 변형한 뒤, 한 줄에 하나씩 출력한다. 변수형과 변수명 사이에는 공백이 하나 있어야 한다. 출력은 입력으로 주어진 변수 선언문에서 변수가 www.acmicpc.net [코드 & 풀이] // common은 기본 변수형, input은 변수 선언들 let [common, ...input] = require("fs") .readFileSync(process.platform === "linux" ? "/dev/stdin" : "input.txt") .toString() .trim() .split(" "); input = input.map((v) => v.replace(",", "")); // 쉼표를 없애줌 input[input.l..

[노드JS/알고리즘] 백준 - 16953번 A -> B (DFS 풀이)
알고리즘/백준 2022. 3. 13. 11:47

- 문제 16953번: A → B 첫째 줄에 A, B (1 ≤ A +v); let answer = -1; const DFS = (A, B, cnt) => { if (A === B) { answer = cnt + 1; return; } else { if (A * 2

[노드JS/알고리즘] 백준 - 1747번 소수&팰린드롬
알고리즘/백준 2022. 3. 9. 18:16

[문제] 1747번: 소수&팰린드롬 어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, www.acmicpc.net [코드] const stdin = require("fs") .readFileSync(process.platform === "linux" ? "/dev/stdin" : "input.txt") .toString() .trim(); let N = Number(stdin); const checkPrimeNum = (n) => { if (n === 1) return false; else if (n === 2) return t..

[노드JS/알고리즘] 백준 - 1074번 Z
알고리즘/백준 2022. 2. 18. 13:11

[문제] 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net [코드] let [N, r, c] = ( process.platform === "linux" ? require("fs").readFileSync("/dev/stdin").toString().trim() : `4 7 7` ) .trim() .split(" ") .map((v) => +v); let res = 0; const divide = (row, col, size) => { if (row === r && col === c) { // 좌표 찾음..

[노드JS/알고리즘] 백준 - 11256번 사탕
알고리즘/백준 2022. 1. 24. 00:42

[문제] 당신은 사탕 공장의 주인이다. 날마다, 당신은 J개의 사탕을 가게에 보내기 위해 상자에 포장해야 한다. 당신은 크기가 다른 상자 N개를 가지고 있다. 당신은 편리를 위해 상자를 최소한으로 쓰려고 한다. (박스를 다 채울 필요는 없다. 일부분만 채워도 된다.) 당신이 공장에서 나오는 사탕의 개수와 각 상자의 크기를 입력받고, 상자를 최소한으로 쓸 때의 사용되는 상자 개수를 출력하는 프로그램을 작성하라. 사탕들을 포장할 공간은 충분하다는 것이 보장된다. 첫 번째 줄에는 테스트 케이스의 개수 T (1 ≤ T ≤ 10)가 주어진다. 각각의 테스트 케이스는 아래 형식을 따른다. 테스트 케이스의 첫 번째 줄에는 사탕의 개수 J와 상자의 개수 N이 주어진다. (1 ≤ J, N ≤ 1,000) 다음 N개의 줄..

[노드JS/알고리즘] 백준 - 2579번 계단오르기
알고리즘/백준 2022. 1. 16. 00:13

[문제] 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. 예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다. 계단 오르는 데는 다음과 같은 규칙이 있다. 계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다. 연속된 세 개의 계단을 모두 밟아서는 안 된다. 단, 시작점은 계단에 포함되지 않는다. 마지막 도착 계단은 반드시 밟아야 한다. 따라서 첫 번째 계단..

[노드JS/알고리즘] 백준 - 14501번 퇴사
알고리즘/백준 2022. 1. 15. 00:55

다이나믹 프로그래밍 문제는 언제나 어렵다.... [문제] 상담원으로 일하고 있는 백준이는 퇴사를 하려고 한다. 오늘부터 N+1일째 되는 날 퇴사를 하기 위해서, 남은 N일 동안 최대한 많은 상담을 하려고 한다. 백준이는 비서에게 최대한 많은 상담을 잡으라고 부탁을 했고, 비서는 하루에 하나씩 서로 다른 사람의 상담을 잡아놓았다. 각각의 상담은 상담을 완료하는데 걸리는 기간 Ti와 상담을 했을 때 받을 수 있는 금액 Pi로 이루어져 있다. N = 7인 경우에 다음과 같은 상담 일정표를 보자. 1일 2일 3일 4일 5일 6일 7일 Ti 3 5 1 1 2 4 2 Pi 10 20 10 20 15 40 200 1일에 잡혀있는 상담은 총 3일이 걸리며, 상담했을 때 받을 수 있는 금액은 10이다. 5일에 잡혀있는 ..