연습장
[백준 6064 - Node.js] 카잉 달력
🔗 문제 링크 https://www.acmicpc.net/problem/6064 6064번: 카잉 달력 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다. www.acmicpc.net ✏️ 풀이 const [T, ...input] = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n'); const data = input.map(v => v.split(' ').map(Number)); const getGCD = (a, b) => { let x = Math.max(a, b); let y =..
[프로그래머스 Level 3] 최고의 집합 - JavaScript
🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12938 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(n, s) { const quotient = Math.floor(s / n); const remainder = s - quotient * n; return quotient ? [...Array(n - remainder).fill(quotient), ...Array(remainder).fill(quotient + 1)] : [-1]; } 최고..
[백준 1107 - Node.js] 리모컨
🔗 문제 링크 https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net ✏️ 풀이 const [N, M, nums] = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n'); const brokens = nums ? nums .split(' ') .reduce((acc, v) => { acc[v] = true; return acc; }, {}) : {}; l..
[백준 2110 - Node.js] 공유기 설치
🔗 문제 링크 https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net ✏️ 풀이 const [N, C, ...coord] = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split(/\s/) .map(Number); coord.sort((a, b) => a - b); const isPossible = (distance) => { le..
[백준 1759 - Node.js] 암호 만들기
🔗 문제 링크 https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net ✏️ 풀이 const [[L, C], alphabets] = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n') .map(row => row.split(' ')); const vowels = ['a', 'e', 'i', 'o', 'u']; const output = []; alphabets.sort(); c..
[백준 5430 - Node.js] AC
🔗 문제 링크 https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net ✏️ 풀이 const [T, ...input] = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n'); const output = []; for (let i = 0; i < input.length; i += 3) { const p = input[i]; const n = +input[i + 1]; const arr = JSON.parse(input[i + 2]..
[백준 1629 - Node.js] 곱셈
🔗 문제 링크 https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net ✏️ 풀이 const [A, B, C] = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split(' ') .map(BigInt); const solve = (power) => { if (power === 1n) { return A % C; } const half = solve(power / 2n) % C; if (power % 2n) { return (half * half * (..
[프로그래머스 Level 3] 불량 사용자 - JavaScript
🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/64064 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(user_id, banned_id) { const selected = Array(user_id.length).fill(false); const regex = banned_id.map(id => new RegExp(`^${id.replaceAll('*', '.')}$`)); const set = new Set(); const dfs = (in..
[프로그래머스 Level 2] 후보키 - JavaScript
🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42890 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(relation) { const rowLen = relation.length; const colLen = relation[0].length; let answer = 0; const bfs = () => { const queue = [...Array(colLen)].map((_, i) => [i]); const candidate = []; w..
[프로그래머스 Level 2] 두 큐 합 같게 만들기 - JavaScript
🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(queue1, queue2) { class Node { constructor(value) { this.value = value; this.next = null; } } class Queue { constructor(arr) { this.head = null; this.tail = null; this.sum = 0; arr.forEach(e..