전체 글
[백준 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..
[프로그래머스 Level 2] 행렬 테두리 회전하기 - JavaScript
🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(rows, columns, queries) { const matrix = [...Array(rows)] .map((_, row) => [...Array(columns)].map((_, col) => row * columns + col + 1)); const result = []; const rotate = (query) => { const ..
[프로그래머스 Level 2] 수식 최대화 - JavaScript
🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(expression) { const calculate = (expression, operator) => { const regex = new RegExp(`-?\\d+(\\${operator}-?\\d+)+`, 'g'); return expression.replace(regex, (match) => eval(match.replaceAll('#..