연습장

    [백준 1806 - Node.js] 부분합

    [백준 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] 귀여운 라이언

    [백준 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

    [프로그래머스 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] 겹치는 건 싫어

    [백준 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] 회전 초밥

    [백준 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..

    [프로그래머스 Level 2] 멀리 뛰기 - JavaScript

    [프로그래머스 Level 2] 멀리 뛰기 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(n) { const dp = Array(n + 1).fill(0); dp[1] = 1; dp[2] = 2; for (let i = 3; i = 3)이 성립한다.

    [백준 2230 - Node.js] 수 고르기

    [백준 2230 - Node.js] 수 고르기

    🔗 문제 링크 https://www.acmicpc.net/problem/2230 2230번: 수 고르기 N개의 정수로 이루어진 수열 A[1], A[2], …, A[N]이 있다. 이 수열에서 두 수를 골랐을 때(같은 수일 수도 있다), 그 차이가 M 이상이면서 제일 작은 경우를 구하는 프로그램을 작성하시오. 예를 들어 www.acmicpc.net ✏️ 풀이 const [NM, ...input] = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n'); const [N, M] = NM.split(' ').map(Number); const arr = input.map(Number); arr.sort((a, b) => a - b);..

    [HackerRank - Easy] Beautiful Pairs - JavaScript

    [HackerRank - Easy] Beautiful Pairs - JavaScript

    🔗 문제 링크 https://www.hackerrank.com/challenges/beautiful-pairs/problem?isFullScreen=true Beautiful Pairs | HackerRank Change an element of B and calculate the number of pairwise disjoint beautiful pairs. www.hackerrank.com ✏️ 풀이 function beautifulPairs(A, B) { const getIntegers = (arr) => arr.reduce((acc, v) => { if (acc[v]) { acc[v]++; } else { acc[v] = 1; } return acc; }, {}); const intA = getI..

    [HackerRank - Easy] Ice Cream Parlor - JavaScript

    [HackerRank - Easy] Ice Cream Parlor - JavaScript

    🔗 문제 링크 https://www.hackerrank.com/challenges/icecream-parlor/problem?isFullScreen=true Ice Cream Parlor | HackerRank Help Sunny and Johnny spend all their money during each trip to the Ice Cream Parlor. www.hackerrank.com ✏️ 풀이 function icecreamParlor(m, arr) { const prices = arr.reduce((acc, v) => { if (acc[v]) { acc[v]++; } else { acc[v] = 1; } return acc; }, {}); const firstPrice = Number( O..

    [백준 6588 - Node.js] 골드바흐의 추측

    [백준 6588 - Node.js] 골드바흐의 추측

    🔗 문제 링크 https://www.acmicpc.net/problem/6588 6588번: 골드바흐의 추측 각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰 www.acmicpc.net ✏️ 풀이 const input = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n') .map(Number); const primeNums = []; const nums = Array(1_000_000 + 1).fill(true); nums[0] = false; nums[1] ..