연습장

    [백준 11660 - Node.js] 구간 합 구하기 5

    [백준 11660 - Node.js] 구간 합 구하기 5

    🔗 문제 링크 https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net ✏️ 풀이 const [[N, M], ...input] = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n') .map(v => v.split(' ').map(Number)); const table = Array.from({ length: N + 1 }, ()..

    [프로그래머스 Level 2] 점프와 순간 이동 - JavaScript

    [프로그래머스 Level 2] 점프와 순간 이동 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(n) { let consumption = 0; while (n) { if (n % 2) { n = (n - 1) / 2; consumption++; } else { n /= 2; } } return consumption; } 순간 이동을 할 때에는 건전지를 사용하지 않으므로 최대한 많이 순간 이동을 해야 한다.만약 이전 위치에서 현재 위치로..

    [프로그래머스 Level 2] 올바른 괄호 - JavaScript

    [프로그래머스 Level 2] 올바른 괄호 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(s){ let stack = 0; for (const char of s) { if (char === '(') { stack++; } else { stack--; } if (stack < 0) { return false; } } return !stack; } 문자열 s를 순회하면서 열린 괄호가 나오면 1을 증가시키고, 닫힌 괄호가 나오면 1을..

    [HackerRank - Easy] Weighted Uniform Strings - JavaScript

    [HackerRank - Easy] Weighted Uniform Strings - JavaScript

    🔗 문제 링크 https://www.hackerrank.com/challenges/weighted-uniform-string/problem Weighted Uniform Strings | HackerRank Determine if a string contains uniform substrings of certain weights. www.hackerrank.com ✏️ 풀이 function weightedUniformStrings(s, queries) { const chars = {}; s.match(/(.)\1{0,}/g).forEach(str => { if (!chars[str[0]]) { chars[str[0]] = str.length; } else { chars[str[0]] = Math.max(..

    [백준 1743 - Node.js] 음식물 피하기

    [백준 1743 - Node.js] 음식물 피하기

    🔗 문제 링크 https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net ✏️ 풀이 const [[N, M, K], ...input] = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n') .map(v => v.split(' ').map(Number)); const corridor = [...Array(N)].map(() => Arr..

    [HackerRank - Easy] Two Characters - JavaScript

    [HackerRank - Easy] Two Characters - JavaScript

    🔗 문제 링크 https://www.hackerrank.com/challenges/two-characters/problem?isFullScreen=true Two Characters | HackerRank Print the length of the longest possible string $t$ you can form. www.hackerrank.com ✏️ 풀이 function alternate(s) { const isAlternate = (str) => [...str].every((v, i) => i % 2 ? v === str[1] : v === str[0]); const chars = [...new Set(s)]; let maxLength = 0; for (let i = 0; i < chars...

    [HackerRank - Easy] Super Reduced String - JavaScript

    [HackerRank - Easy] Super Reduced String - JavaScript

    🔗 문제 링크 https://www.hackerrank.com/challenges/reduced-string/problem?isFullScreen=true Super Reduced String | HackerRank Given a string, repeatedly remove adjacent pairs of matching characters and then print the reduced result. www.hackerrank.com ✏️ 풀이 function superReducedString(s) { const stack = []; [...s].forEach(letter => { if (stack[stack.length - 1] === letter) { stack.pop(); } else { sta..

    [백준 25706 - Node.js] 자전거 묘기

    [백준 25706 - Node.js] 자전거 묘기

    🔗 문제 링크 https://www.acmicpc.net/problem/25706 25706번: 자전거 묘기 길이가 N미터인 직선 자전거 도로가 있다. 도로는 길이가 1미터인 N개의 칸으로 구분되어 있고, 가장 왼쪽에 있는 칸부터 순서대로 1번 칸, 2번 칸, …, N번 칸이다. 도로의 각 칸에는 점프대가 설 www.acmicpc.net ✏️ 풀이 const [[N], heights] = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n') .map(v => v.split(' ').map(Number)); const dp = Array(N + 1).fill(0); for (let i = N; i > 0; i--) { dp[i..

    [프로그래머스 Level 2] 귤 고르기 - JavaScript

    [프로그래머스 Level 2] 귤 고르기 - JavaScript

    🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(k, tangerine) { const counts = {}; tangerine.forEach(v => counts[v] = (counts[v] ?? 0) + 1); const sortedCounts = Object.values(counts).sort((a, b) => a - b); const restCount = tangerine.len..

    [백준 16173 - Node.js] 점프왕 쩰리 (Small)

    [백준 16173 - Node.js] 점프왕 쩰리 (Small)

    🔗 문제 링크 https://www.acmicpc.net/problem/16173 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net ✏️ 풀이 const [[N], ...board] = require('fs') .readFileSync('/dev/stdin') .toString() .trim() .split('\n') .map(v => v.split(' ').map(Number)); const dfs = (x = 0, y = 0) => { const dist = board[x][y]; // 도착한 경우 if (dis..