[C++] 프로그래머스 가장먼노드 BFS
·
Algorithm/Programmers
#include #include #include using namespace std; int BFS(int n, vector &temp); int solution(int n, vector edge) { int answer = 0; vector temp(n + 1);//1~n이라 +1 for(int i = 0; i < edge.size(); i++) { temp[edge[i][0]].push_back(edge[i][1]);//양방향으로 저장 temp[edge[i][1]].push_back(edge[i][0]); } answer = BFS(n, temp);//개수 반환 return answer; } int BFS(int n, vector &temp) { queue q;//다음 방향 저장 q.push({1, ..
[C++] 프로그래머스 수식최대화 2020카카오인턴십
·
Algorithm/Programmers
#include #include #include #include using namespace std; long long calculate(long long a, long long b, char opr);//계산 long long solve(string oper, vector &operators, vector &nums);//우선순위 long long solution(string expression) { long long answer = 0; vector nums;//수들을 저장 vector operators;//연산자를 저장 string num = "";//수를 일시적으로 저장할 공간 for (int i = 0; i < expression.length(); i++) { if (expression[i] =..
[C++] 프로그래머스 여행경로 DFS/BFS
·
Algorithm/Programmers
1번채점 오답이 자꾸나온다. 더보기 #include #include #include #include using namespace std; vector DFS(string start, vector tickets); vector solution(vector tickets) { vector answer = DFS("ICN", tickets); return answer; } vector DFS(string start, vector tickets) { vector result; bool visited[10000]; int ticketCount = 0; sort(tickets.begin(), tickets.end()); //priority_queue pq; //pq.push("ICN"); queue q; q.pus..
[C++] 프로그래머스 키패드누르기 2020 카카오 인턴십
·
Algorithm/Programmers
#include #include using namespace std; string solution(vector numbers, string hand) { string answer = ""; vector lists(13);//키패드 위치 int left = 10;//* int right = 12;//# {//현재 번호의 키패드 위치를 넣는다. int counts = 1; for(int i = 0; i < 4; i++) { for(int j = 0; j < 3; j++) { lists[counts].first = j; lists[counts].second = i; counts++; } } } for(int i = 0; i < numbers.size(); i++) { //고정된 키값은 바로 적용 if(numb..
[C++] 프로그래머스 더 맵게 힙
·
Algorithm/Programmers
#include #include #include using namespace std; int solution(vector scoville, int K) { int answer = 0; int want = 0; priority_queue pq; //낮은 순으로 정렬하기 위해 pq for(int i = 0; i = K) return 0; //가장 작은 수가 k이상일 때 바꿀 필요가 없다. while(pq.size() > 1) //한개 이하일 경우 조합을 할 수 없다. { //처음 수와 두번째로 낮은 수를 조합한다. int one = pq.top(); pq.pop(); int two ..
[C++] 프로그래머스 프린터 스택/큐
·
Algorithm/Programmers
#include #include #include using namespace std; int solution(vector priorities, int location) { int answer = 0; priority_queue pq; queue q; for(int i = 0; i < priorities.size(); i++) { pq.push({priorities[i], i}); q.push({priorities[i], i}); } while(!pq.empty()) { int currVal = q.front().first; int currNum = q.front().second; //제일 값이 높은 것과 현재 것이 같다, 현재 번호와 location이랑 같아야 된다. if(pq.top().first ==..