title: "기둥과 보 설치" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-12" 문제 링크 기둥과 보 설치 C++ #include #include #include using namespace std; bool kidoong(vector& board, int x, int y){ // "기둥"이 있을 조건인지 if(y==0) return true; // 제일 밑 바닥 else if(y>0&& (board[x][y-1]==0||board[x][y-1]==2)) return true; // 기둥 위 else if(board[x][y]==1||board[x][y]==2) return true; // 보 왼쪽 위 else if..
title: "가장 긴 팰린드롬" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-10" 문제 링크 가장 긴 팰린드롬 C++ #include #include using namespace std; bool isPalindrome(string& str, int left, int right){ while(left0){ int start=0; // 부분 문자열 시작 인덱스 int end=subLen-1; // 부분 문자열 끝 인덱스 while(end { while (left < right) { if (s[left++] !== s[right--]) return false; } return true; }; let subLen = s...
title: "광고 삽입" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-09" 문제 링크 광고 삽입 C++ #include #include #include using namespace std; int toSec(string str){ int second=stoi(str.substr(0, 2))*3600 +stoi(str.substr(3, 2))*60 +stoi(str.substr(6, 2)); return second; } string toStr(int second){ string str=""; // 시 int hour=second/3600; second%=3600; if(hour
title: "합승 택시 요금" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-08" 문제 링크 합승 택시 요금 C++ #include #include #include using namespace std; int solution(int n, int s, int a, int b, vector fares) { int answer = 0; // init vector graph(n+1, vector(n+1, 100001*n) ); for(auto v: fares){ graph[v[0]][v[1]]=v[2]; graph[v[1]][v[0]]=v[2]; } // Floyd-Warshall for(int k=1; k
title: "순위" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-08" 문제 링크 순위 C++ #include #include #include using namespace std; int solution(int n, vector results) { int answer = 0; // init vector record(n+1, vector(n+1, false)); for(auto r: results) record[r[0]][r[1]]=true; // r[0]이 r[1]을 이긴다. for(int k=1; k
title: "베스트앨범" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-07" 문제 링크 베스트앨범 C++ #include #include #include #include #include using namespace std; bool cmp(pair a, pair b) { return a.second>b.second; } vector solution(vector genres, vector plays) { vector answer; int size=plays.size(); map genres_total; // 장르_총 플레이 횟수 map genres_plays; // 장르_[고유번호_플레이횟수] for(int i=0; i..
title: "입국심사" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-06" 문제 링크 입국심사 C++ #include #include #include #include using namespace std; long long solution(int n, vector times) { long long answer = 0; stable_sort(times.begin(), times.end()); // 오름차순 long long rightT=(long long)times.front()*n; long long leftT=1; while(leftT=n) { // 모두 심사 가능한 경우 rightT=time-1; answer=tim..
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=..