전체 글
[ESLint] import/order 규칙으로 import 순서 미세 조정하기
eslint-plugin-import를 활용하면 아래와 같은 import문들의 순서를 직접 조정할 수 있다. 먼저 eslintrc 파일의 plugins 배열에 "import"를 추가하거나 또는 extends 배열에 "plugin:import/recommended"를 추가해야 한다. (plugins와 extends 모두 위 문자열을 추가하면 rules에서 규칙을 직접 수정할 수 있게 되며, extends의 경우에는 권장되는 기본 설정이 추가된다. extends에 추가하고 rules를 수정하면 기본 설정 위에 덮어씌우게 된다.) { "plugins": ["import"] } { "extends": ["plugin:import/recommended"] } 이제 rules에서 "import/order" 규칙을 ..
[프로그래머스 Level 2] 괄호 회전하기 - JavaScript
🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/76502# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(s) { const opening = ['(', '{', '[']; const closing = [')', '}', ']']; let count = 0; for (let i = 0; i < s.length; i++) { const rotated = s.slice(i) + s.slice(0, i); const stack = []; let i..
[프로그래머스 Level 2] 행렬의 곱셈 - JavaScript
🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(arr1, arr2) { const result = Array.from({ length: arr1.length }, () => Array(arr2[0].length).fill()); for (let i = 0; i < arr1.length; i++) { for (let j = 0; j < arr2[0].length; j++) { result..
[백준 1991 - Node.js] 트리 순회
🔗 문제 링크 https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net ✏️ 풀이 const [N, ...input] = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n'); const nodes = input.map(v => v.split(' ')); class Tree { constructor(value) { this.value = value; this.le..
[백준 1644 - Node.js] 소수의 연속합
🔗 문제 링크 https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net ✏️ 풀이 const N = Number(require('fs').readFileSync('/dev/stdin').toString().trim()); const isPrime = Array(N + 1).fill(true); isPrime[0] = isPrime[1] = false; for (let i = 2; i N) { sum -= primes[i]; i++; } if (sum === N) { count++; } j++; } console.log(count); 먼저 1부터 N까지의 소수를 모두 구한 ..
[백준 1806 - Node.js] 부분합
🔗 문제 링크 https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N v.split(' ').map(Number)); let sum = 0; let minLength = Infinity; let i = 0; let j = 0; while ..
[백준 15565 - Node.js] 귀여운 라이언
🔗 문제 링크 https://www.acmicpc.net/problem/15565 15565번: 귀여운 라이언 꿀귀 라이언 인형과, 마찬가지로 꿀귀인 어피치 인형이 N개 일렬로 놓여 있다. 라이언 인형은 1, 어피치 인형은 2로 표현하자. 라이언 인형이 K개 이상 있는 가장 작은 연속된 인형들의 집합의 www.acmicpc.net ✏️ 풀이 const [[N, K], dolls] = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n') .map(v => v.split(' ').map(Number)); let count = 0; let minCount = Infinity; let i = 0; let j = 0; while (j..
[프로그래머스 Level 3] 입국심사 - JavaScript
🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(n, times) { let low = 1n; let high = 1_000_000_000n ** 2n; while (low acc + mid / BigInt(time), 0n); if (people < n) { low = mid + 1n; } else { high = mid - 1n; } } return low; } 심사관 1명이 1명 심..
[백준 20922 - Node.js] 겹치는 건 싫어
🔗 문제 링크 https://www.acmicpc.net/problem/20922 20922번: 겹치는 건 싫어 홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원소가 $K$개 이하로 들어 있는 최장 연속 부분 수열 www.acmicpc.net ✏️ 풀이 const input = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n'); const [[N, K], arr] = input.map(v => v.split(' ').map(Number)); const intMap = {}; let maxLength = 0; let i = 0; let..
[백준 2531 - Node.js] 회전 초밥
🔗 문제 링크 https://www.acmicpc.net/problem/2531 2531번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 30,000, 2 ≤ d ≤ 3,000, 2 ≤ www.acmicpc.net ✏️ 풀이 const input = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n'); const [N, d, k, c] = input[0].split(' ').map(Number); const sushi = input.slice(1).map(Number); l..