반응형

Programming/Programmers 29

프로그래머스 카펫 [c++]

#include #include #include #include #include using namespace std; bool visited[2000001]; vector solution(int brown, int yellow) { vector answer; int sum = brown + yellow; //격자의 총 개수 queueq; int temp = (int)sqrt(sum); //총 개수의 제곱근을 int로 저장 int num; q.push(temp); //제곱근을 시작으로 탐색시작 while (!q.empty()) { int x = q.front(); q.pop(); if (sum % x == 0) //x로 나누어떨어질 경우 { int y = sum / x; //x * y = sum이 성립되기..

프로그래머스 구명보트 [c++]

#include #include #include #include #include using namespace std; bool visited[50001]; int solution(vector people, int limit) { int answer = 0; //구명보트개수 int idx = 0; int len = people.size()-1; sort(people.begin(), people.end()); //오름차순정렬 while (1) //idx와 len을 사용하여 가장가벼운사람과 가장무거운사람의 합부터 비교 { if (idx >= len) //탐색이 끝난경우 { for (int i = 0; i < people.size(); i++) //방문여부확인 { if (visited[i]) continue; ..

프로그래머스 체육복 Level 1 [c++]

#include #include #include #include #include using namespace std; int solution(int n, vector lost, vector reserve) { int answer = 0; bool visited[31] = { false, }; int cnt = 0; //여벌의 체육복으로 해결된 학생수 int len = lost.size(); //도난당한학생수 sort(lost.begin(), lost.end()); //오름차순으로 정렬, 정렬을해야 근처 번호를 우선적으로 확인가능 sort(reserve.begin(), reserve.end()); for (int i = 0; i < lost.size(); i++) //여벌체육복을 가져왔지만 도난당한 경우 ..

프로그래머스 가장큰수 [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(..

프로그래머스 완주하지 못한 선수 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값 저장 ..

프로그래머스 기능개발 Level2 [c++]

#include #include #include #include #include #include using namespace std; vector solution(vector progresses, vector speeds) { int len = progresses.size();//작업의 개수 vectorv(len); vector answer(len);//결과를 저장할 vector stacks;//stack 선언 int cnt = 1;//날짜를 저장할 변수 int idx = 0;//결과 vector의 인덱스 변수 for(int i=0;i= 100)//작업의 진도가 100이상일 경우 { s.pop();//stack의 값 삭제 answer[idx]++;//배포개수 증가 while (!s.empty())//다음..

반응형