title: "경주로 건설" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-20" 문제 링크 경주로 건설 C++ #include #include #include #include using namespace std; // 우(0), 하(1), 좌(2), 상(3) int LUT_ROW[]={0, 1, 0, -1}; int LUT_COL[]={1, 0, -1, 0}; typedef struct Car{ int row, col, dir, cost; Car(int _row, int _col, int _dir, int _cost){ row=_row; col=_col; dir=_dir; cost=_cost; } }Car; bool c..
title: "기지국 설치" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-20" 문제 링크 기지국 설치 C++ #include #include using namespace std; int solution(int n, vector stations, int w) { int answer = 0; int from=1; // ~부터 int range=2*w+1; // 범위 for(int station: stations){ int to=station-w; // ~전까지 if(to>from){ int count=to-from; // 전파 닿지 않는 개수 // 기지국 개수 추가 answer += count/range; answer +..
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 ..