title: "숫자 게임" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-16" 문제 링크 숫자 게임 C++ #include #include #include using namespace std; int solution(vector A, vector B) { int answer = 0; // 오름차순 정렬 stable_sort(A.begin(), A.end()); stable_sort(B.begin(), B.end()); int indexA=0; int indexB=0; while(indexB a - b); B.sort((a, b) => a - b); let idxA = 0; B.forEach((b) => { if (A[i..
title: "방문 길이" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-16" 문제 링크 방문 길이 C++ #include #include using namespace std; int solution(string dirs) { int answer = 0; // 상, 우, 하, 좌 int dir[4][2]={{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; set edges; // { {x, y}, dir } int sx=0, sy=0; for(char ch: dirs){ int dirIndex; if(ch=='U') dirIndex=0; else if(ch=='R') dirInd..
title: "야근 지수" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-20" 문제 링크 야근 지수 C++ #include #include #include using namespace std; long long solution(int n, vector works) { long long answer = 0; // init priority_queue pq(works.begin(), works.end()); while(n-->0){ int work=pq.top(); if(work==0) return 0; // 모든 일이 끝남 pq.pop(); pq.push(work-1); // 작업량 1 감소 } while(!pq.empty..
title: "줄 서는 방법" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-16" 문제 링크 줄 서는 방법 C++ #include #include using namespace std; vector solution(int n, long long k) { vector answer; // init vector remains; long long fac=1; for(int i=1; i prev * curr, 1); // n! k--; // for. indexing for (let i = 0; i < n; i++) { fac /= n - i; // ex. (n-1)!, (n-2)!, ..., 1! const index = pars..
title: "최고의 집합" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-16" 문제 링크 최고의 집합 C++ #include #include using namespace std; vector solution(int n, int s) { vector answer; if(s0; rest--){ // 나머지를 뒤에서부터 추가 answer[last--]++; } } return answer; } JavaScript function solution(n, s) { var answer = []; if (s < n) { answer.push(-1); } else { answer = Array.from({ length: n }, ()..
title: "배달" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-15" 문제 링크 배달 C++ #include #include #include using namespace std; int solution(int N, vector road, int K) { int answer = 0; // init vector graph[N+1]; // 걸리는 시간_마을(정점) for(auto vec: road){ int t1=vec[0]; int t2=vec[1]; int h=vec[2]; graph[t1].push_back({h, t2}); graph[t2].push_back({h, t1}); } // dijkstra vector ..
title: "외벽 점검" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-14" 문제 링크 외벽 점검 C++ #include #include #include using namespace std; int solution(int n, vector weak, vector dist) { int answer = 9; // 최대 sort(dist.begin(), dist.end()); // for. next_permutation() for(int i=0; i idx !== i); // 나머지 배열 const permuArr = getPermu(restArr, select - 1); // 재귀 const mergeArr = permu..
title: "거스름돈" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-13" 문제 링크 거스름돈 C++ #include #include #include using namespace std; int solution(int n, vector money) { int answer = 0; stable_sort(money.begin(), money.end()); // 작은 단위부터 vector dp(n+1, 0); // 경우의 수 dp[0]=1; // init for(int current: money){ for(int i=current; i a - b); // 작은 단위부터 const dp = Array.from({ length..