목록알고리즘 문제 (164)
Muscardinus
https://programmers.co.kr/learn/courses/30/lessons/72412 { const key = array.join(""); if (infoMap[key]) infoMap[key].push(score); else infoMap[key] = [score]; for (let i = start; i < array.length; i++) { const temp = [...array]; temp[i] = "-"; combination(temp, score, i + 1); } } for (const e of info) { const splited = e.split(" "); const score = +splited.pop(); combination(splited, score, 0); ..
https://programmers.co.kr/learn/courses/30/lessons/81302#fn1 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr function solution(places) { const answer = [];..
https://programmers.co.kr/learn/courses/30/lessons/77485?language=javascript 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr function solution(rows, columns, queries) { const answer = []; let arr = Array.from(new Array(rows + 1), () => new Array(columns + 1).fill(0)); for (let y = 1; y x1; j--) st..
programmers.co.kr/learn/courses/30/lessons/42898?language=cpp 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr #include #include using namespace std; const int DIVIDER = 1000000007; int check[101][101] = {0, }; int visited[101][101] = {0, }; // m열 n행 int solution(int m, int n, vector puddles) { for (in..
programmers.co.kr/learn/courses/30/lessons/43105?language=cpp 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr #include #include #include using namespace std; int dp[500][500]; int solution(vector triangle) { int answer = 0; int n = triangle.size(); dp[0][0] = triangle[0][0]; for (int i = 1; i < n; i++) { for (int j = 0; j
programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr function solution(jobs) { let answer = 0; let j = 0, time = 0; const priorityQueue = []; jobs.sort((a,b) => a[0] - b[0]); while (j = jobs[..
programmers.co.kr/learn/courses/30/lessons/42579?language=javascript 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr function solution(genres, plays) { const summaryGenres = genres.reduce((acc, cur, index) => { if (!acc[cur]) { acc[cur] = { totalPlay: 0, playList: [] }; } acc[cur].totalPlay += plays[index]..
programmers.co.kr/learn/courses/30/lessons/42861?language=javascript 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr function solution(n, costs) { let answer = 0; let isLand = {}; // 섬 정보 let bridge = {}; // 다리 정보 let total = 0; // 지어진 다리 갯수 costs.sort((a, b) => a[2] - b[2]); isLand[costs[0][0]] = true; isLand[costs[0][1]] = true; bridge[0] = true; answer += cos..