목록알고리즘 문제/[프로그래머스] Lv3 (13)
Muscardinus
https://programmers.co.kr/learn/courses/30/lessons/17676 e.slice(11).split(" ")).map((e) => [toTimeNumber(e[0]), Number(e[1].replace("s",""))]); const times = logs.map((e) => [e[0] - (e[1] * 1000) + 1, e[0]]).sort((a, b) => a[0] - b[0]); let answer = 0; let window = []; times.forEach(([start, end]) => { window.push(end); window = window.filter((e) => e > start - 1000); answer = Math.max(window.l..
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..
programmers.co.kr/learn/courses/30/lessons/68646?language=javascript 코딩테스트 연습 - 풍선 터트리기 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6 programmers.co.kr C++ #include #include using namespace std; int solution(vector a) { int answer = 2; vector l(a.size(), 0), r(a.size(), 0); l[0] = a[0]; r[a.size() - 1] = a[a.size() - 1]; for(int i = 1; i < a.size(); i++) l[i] = min(a[i], l[i - 1]); for (int i = a.size..
programmers.co.kr/learn/courses/30/lessons/42895?language=javascript 코딩테스트 연습 - N으로 표현 programmers.co.kr 문제풀이 N의 최소 사용횟수가 8번보다 크면 -1을 반환하도록 제한되어있으므로 N을 1번 사용하는 것에서부터 8번사용하는 것까지를 순차적으로 숫자를 만들어보고, 1번부터 8번 집합에 각각 저장합니다. 그리고 number가 만들어졌는지 확인하면 됩니다. N이 5일때 5는 N을 1번 사용한 것이고, 55는 2번, 555는 3번, 5555는 4번, 55555555는 8번 사용한 것 입니다. 이를 각각의 집합에 미리 추가해줍니다. 1번 집합에 들어갈 수 있는 숫자는 5 하나 밖에 없습니다. 2번 집합에는 55외에 들어갈 수 있..