연습장
![[백준 11660 - Node.js] 구간 합 구하기 5](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fc7y0wW%2FbtrVkfCkjVQ%2FAAAAAAAAAAAAAAAAAAAAAJDHmu2Rx6sOO21F4LFb9O6GdsgsMR6zX9zJwxeiYXsh%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Di6yngCvb1zQUp5ocxznDVDK9W7E%253D)
[백준 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](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb1CbpP%2FbtrVq3GL6je%2FAAAAAAAAAAAAAAAAAAAAAFIJqJ4P6AGIKw5U9XaITmh5aHWD53ZGhi06hCnVi_GY%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DqtUwZyEi3Il1W2LnWNxkd8P1afw%253D)
[프로그래머스 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](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FesqB4d%2FbtrVfjrl3zF%2FAAAAAAAAAAAAAAAAAAAAAHgJ1rRIkfmlDTYdiNGdbb3_knZIX6ZyM0b3_mNeRURE%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DzjfvodxvhRN9k7yqobmo%252B0uUf2g%253D)
[프로그래머스 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](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FeDu16g%2FbtrVexpFhb1%2FAAAAAAAAAAAAAAAAAAAAADFDKvc5fES4xQtO5GJQcwD5DJO5IdZt1XCXYx0GgMyg%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DhDPxlcusWgowMJeqCFtHFvDGFNY%253D)
[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] 음식물 피하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcPcNM4%2FbtrVeV3S9j8%2FAAAAAAAAAAAAAAAAAAAAAOm5718xMGKeXFYOILnzYTCHZ3GoXnLQCT4Q-jSoCcaf%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DpxfJNldz1cge2H3Ep8lTHgHzOKo%253D)
[백준 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](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FlfS6K%2FbtrU8E3dK3M%2FAAAAAAAAAAAAAAAAAAAAAOiUSQRJyWqT1aZjC7RSl2h73HrcdtnTRMAdLSRPmTHj%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D14MJhSnL9wIQhWDJZcktTCqTgd0%253D)
[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](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Floaw6%2FbtrVh7ibWz4%2FAAAAAAAAAAAAAAAAAAAAAPktmhYY1GBlv_m7ZAe1B1fDi9kwE5OiaWnOj3t0WbSH%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DBZ8naB4iF1mwbKOVBiHdNNkOnbI%253D)
[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] 자전거 묘기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FldZ2l%2FbtrVclPikb3%2FAAAAAAAAAAAAAAAAAAAAADTwZys3zUWw_Y7TMD-sogh_RedqvMW5KMxSBSPb31Tx%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DlBq8Xlt3lEd5GaNyaJ1LsEzYSVo%253D)
[백준 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](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdFoQ8w%2FbtrU56YXb7h%2FAAAAAAAAAAAAAAAAAAAAAA5DTsQju2MC48uJbcr24YbokkHHJeQnzj742D3Znbdl%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D0hpaXR5mZidAddqC2Rdf0jvIwLI%253D)
[프로그래머스 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)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcjOxmD%2FbtrU38JpQQD%2FAAAAAAAAAAAAAAAAAAAAAG5l3vBZvpsbS3XJyc2m42P_EimtaEdKiHVc-vwoyrhv%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DA6kXhf2rA1s0GgxcrWMK8wioOdA%253D)
[백준 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..