반응형

전체 312

백준 1463 1로만들기 [c++]

#include #include #include #include using namespace std; int n; void bfs(int x) { queueq; q.push({x,0}); while (!q.empty()) { int a = q.front().first;//현재값 저장 int c = q.front().second;//연산회수를 저장 q.pop(); if (a == 1)//1이되면 결과출력 및 종료 { cout 1000000)continue;//범위를 벗어나면 continue if (a % 3 == 0)//3으로 나누는 경우 q.push({ a/3,c + 1 }); if (a % 2 == 0)//2로 나누는 경우 q.push({ a / 2,c + 1 }); if (a > 1)//-1을 하는 ..

프로그래머스 가장큰수 [c++]

#include #include #include #include #include using namespace std; bool cmp(string a, string b) { return a + b > b + a;// ex) a=10, b=2 -> a+b=102, b+a=210 } string solution(vector numbers) { string answer = ""; vectorv; for (int i = 0; i < numbers.size(); i++) v.push_back(to_string(numbers[i])); sort(v.begin(), v.end(),cmp);//내림차순으로 정렬, cmp함수의 조건을 만족하도록 정렬된다 for (auto it = v.begin();it != v.end(..

백준 9095 1,2,3더하기 [c++]

#include #include #include #include #include #include using namespace std; int t, n; vectorresult;//결과를 저장할 vector int arr[3] = { 1,2,3 };//1,2,3을 더할때 사용될 배열 int num;//각케이스별 방법의 수를 저장할 변수 int dfs(int a, int r) { num = 0;//방법의수 초기화 stacks;//stack 선언 s.push(a); while (!s.empty()) { int x = s.top();//stack의 top 값 저장 s.pop();//저장한값 삭제 if (x == r)//x가 입력받은 숫자일 경우 방법의수 증가 { num++; } for (int i = 0; i ..

백준 1697 숨바꼭질 [c++]

#include #include #include #include #include using namespace std; #define MAX 100001 int n, k; int map[MAX]; bool visited[MAX]; void bfs(int a) { queueq;//queue선언 q.push(make_pair(a, 0));//매개변수 및 시간을 push visited[a] = true;//방문표시 while (!q.empty()) { int x = q.front().first;//queue의 front 값 저장 int cnt = q.front().second; q.pop();//삭제 visited[x] = true;//방문표시 if (map[x] == 1)//map의 해당 인덱스의 값이 1이라..

프로그래머스 완주하지 못한 선수 Level1 [c++]

#include #include #include #include #include using namespace std; string solution(vector participant, vector completion) { string answer = "";//결과를 저장할 변수 multisets;//중복된 key값 저장가능하며, 오름차순으로 정렬되는 multiset 선언 for (int i = 0; i < participant.size(); i++)//참여자들을 multiset에 insert s.insert(participant[i]); for (auto it = completion.begin();it != completion.end();it++) { s.erase(s.find(*it));//multise..

프로그래머스 주식가격 Level2 [c++]

#include #include #include #include #include #include using namespace std; vector solution(vector prices) { vector answer;//정답을 반환할 vector queueq;//queue 선언 int result;//각각의 시간을 저장할 변수 int idx; int len = prices.size();//매개변수로 받은 vector의 개수 for (int i = 0; i < len; i++)//queue에 prices을 push q.push(prices[i]); idx = 0; while (!q.empty()) { result = 0;//시간초기화 int num = q.front();//queue의 front값 저장 ..

반응형