title: "이중우선순위큐" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-06" 문제 링크 이중우선순위큐 C++ #include #include #include using namespace std; vector solution(vector operations) { vector answer(2, 0); set nums; for(string opStr: operations){ if(opStr[0]=='I') nums.insert(stoi(opStr.substr(2))); else if(opStr=="D 1"&&nums.size()>0) nums.erase(--nums.end()); else if(opStr=..
title: "여행경로" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-06" 문제 링크 여행경로 C++ #include #include #include using namespace std; string result=""; void dfsGo(vector& tickets, string total, vector& visited){ if(total.length()/3==tickets.size()+1){ if(result.empty()||total
title: "섬 연결하기" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-05" 문제 링크 섬 연결하기 C++ #include #include #include #include #include using namespace std; bool cmp(vector a, vector b){ return a[2] a[2] - b[2]); const root = []; for (let i = 0; i < n; i++) root.push(i); for (const arr of costs) { const root1 = findRoot(root, arr[0]); const root2 = findRoot(root, arr[1]); if (..
title: "단어 변환" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-05" 문제 링크 단어 변환 C++ #include #include #include using namespace std; bool compare(string a, string b){ // 비교 int count=0; for(int i=0; i { if (current === target) return depth; else { let count = 51; for (let i = 0; i < words.length; i++) { if (!visited[i] && compare(current, words[i])) { visited[i] = true; co..
title: "단속카메라" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-05" 문제 링크 단속카메라 C++ #include #include #include using namespace std; bool cmp(vector a, vector b){ return a[1] a[1] - b[1]); // 나간 시점 기준 오름차순 let end = -30001; routes.forEach((v) => { const start = v[0]; if (start > end) { // 카메라 설치 지점보다 진입 시점이 클 때 answer++; end = v[1]; } }); return answer; }
title: "가장 먼 노드" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-05" 문제 링크 가장 먼 노드 C++ #include #include #include #include #include using namespace std; int solution(int n, vector edge) { int answer = 0; // init map node; for(int i=0; i false); // 1 방문 visited[1] = true; for (let i = 0; i < adjList[1].length; i++) { const num = adjList[1][i]; visited[num] = true; queue.p..
title: "디스크 컨트롤러" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-05" 문제 링크 디스크 컨트롤러 C++ #include #include #include #include using namespace std; struct cmp{ bool operator()(vector a, vector b){ if(a[1]==b[1]) return a[0]>b[0]; // 요청시간 작은 것부터 else return a[1]>b[1]; // 소요시간 작은 것부터 } }; int solution(vector jobs) { int answer = 0; priority_queue pq; stable_sort(jobs.begin()..