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..
title: "멀리 뛰기" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-13" 문제 링크 멀리 뛰기 C++ #include #include using namespace std; long long solution(int n) { long long answer = 0; vector counts(n+1); counts[1]=1; counts[2]=2; for(int i=3; i 0); counts[1] = 1; counts[2] = 2; for (let i = 3; i
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