목록알고리즘 문제 (164)
Muscardinus
https://programmers.co.kr/learn/courses/30/lessons/77885 코딩테스트 연습 - 2개 이하로 다른 비트 programmers.co.kr 이 문제는 2가지 조건으로 나누어서 풀면 되는 문제이다. 1. 맨 뒤 비트가 0일 때 이 경우 단순히 맨 뒤 비트를 1로 바꿔주면 해당 수보다 큰 수 중 가장 작은 값이 된다. ex: 1110(14) -> 1111(15) 2. 맨 뒤 비트가 0이 아닐 때 이 경우, 뒤에서 부터 첫번째로 등장하는 "01"을 찾는다. 그리고 이 부분을 "10"으로 바꿔주면 2비트만 바꾸어 만들 수 있는 가장 작은 값이 된다. ex: 11011(27) -> 11101(29) function solution(numbers) { const answer =..
https://programmers.co.kr/learn/courses/30/lessons/87946 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr function solution(k, dungeons) { let answer = 0; const visited = new Array(dungeons.length).fill(false); const dfs = (energy, cnt) => { answer = Math.max(cnt, answer); for (let i = 0; i < dungeons.le..
https://programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr 다익스트라 사용 function solution(N, road, K) { const r = Array.from(new Array(N + 1), () => []); const cost = new Array(N + 1).fill(Infinity); const pq = []; road.forEach(([from, to, w]) => { r[f..
https://programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr function solution(s) { let answer = 0; const check = (str) => { const s = str.split(""); const q = []; const cnt = 0; for (let i = 0; i < s.length; i++) { if (['[', '(', '{'].includes(s[i])) { q.push(s[i]); } else { if (!q.length) return false; const c = q.pop(); if (c === '(' && s[i] !== ')') return fa..
https://programmers.co.kr/learn/courses/30/lessons/86052 코딩테스트 연습 - 빛의 경로 사이클 각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다. 빛이 "S"가 써진 칸에 도달한 경우, 직진 programmers.co.kr function solution(grid) { const answer = []; const R = grid.length; const C = grid[0].length; const visit = Array.from(new Array(R), () => Array.from(new Array(C), () => new Array(4).fill..
https://programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr function solution(fees, records) { const answer = []; const carsInfo = {}; for (let record of records) ..
https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr function solution(maps) { let answer; const dy = [1, -1, 0, 0]; const dx = [0, 0, 1, -1]; const n = maps.length; const m = maps[maps.length - 1].length; const check = Array...
https://programmers.co.kr/learn/courses/30/lessons/92342 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr function solution(n, info) { let maxDiff = 0; let ryonInfo = new Array(11).fill(0); const run = (peachScore, ryonScore, count, idx, board) => { if (n 10) { let diff = ryonScore - ..