분류 전체보기(99)
-
프로그래머스 모의고사 C++
시뮬레이션 문제이다. 테스트케이스 5, 7번에서 문제가 있었는데 max_val을 처리해주는 부분 (line 32, 33)에서 잘못 짠 부분이 있었다. max_val = max(ans1, ans2); max_val = max(ans2, ans3); 이런식으로 짰었는데 이렇게 하면 예전 값을 기억하지 못한다는 문제점이 있어서 이렇게 변경했다. max_val = max(ans1, ans2); max_val = max(max_val, ans3); #include #include #include #include using namespace std; vector p1 = { 1, 2, 3, 4, 5 }; vector p2 = { 2, 1, 2, 3, 2, 4, 2, 5 }; vector p3 = { 3, 3, 1,..
2023.10.19 -
프로그래머스 같은 숫자는 싫어 C++
그냥 쉬운 스택을 이용한 구현 문제이다. EASY #include #include #include #include using namespace std; queue s; vector solution(vector arr) { vector answer; for (int i = 0;i < arr.size();i++) { if (s.empty()) { s.push(arr[i]); } else { if (s.back() == arr[i]) { continue; } else { s.push(arr[i]); } } } while (!s.empty()) { answer.push_back(s.front()); s.pop(); } return answer; }
2023.10.19 -
프로그래머스 소수찾기 C++
문제는 먼저 numbers 가지고 만들 수 있는 모든 숫자들을 만들고, 만든 다음에 소수인지 확인하면 된다. numbers가지고 만들 수 있는 모든 숫자들을 어떻게 만들 수 있을까? c++ 에 정의되어 있는 next_permutation 함수를 사용했다 #include #include #include #include #include #include using namespace std; unordered_map m; bool isPrime(int x) { if (x == 0 || x == 1) { return false; } if (x == 2) { return true; } for (int i = 2; i first)) { answer++; } } cout
2023.10.19 -
프로그래머스 최소직사각형 C++
#include #include #include using namespace std; int solution(vector sizes) { int answer = 0; int height=0, width=0; for (int i=0;i sizes[i][1]){ height = max(height, sizes[i][0]); width = max(width, sizes[i][1]); } else{ height = max(height, sizes[i][1]); width = max(width, sizes[i][0]); } } answer = height * width; return answer; } 문제는 완전탐색 문제이다. 결국, 최소 직사각형을 구하면 한쪽에 max값을 두고 다른쪽에 나머지를 두는 것이 가장..
2023.10.19 -
프로그래머스 H-Index C++
이 문제는 이해하기가 어려운 문제였다. 코드는 간단하다. 문제에서 나온 예시를 정렬하면 0,1, 3, 5, 6이 된다. 이 때 인덱스 번호는 자신 이상으로 인용된 횟수를 확인할 수 있다. 가령 6의 경우 인덱스 번호는 1이고 (역으로 정렬했다) 따라서 자신 이상으로 인용된 횟수는 1회이다. 디버깅 케이스는 10, 20, 30과 같은 경우이다. 이 때 10회이상 인용이 되었지만 쓴 논문이 3편이기 때문에 h index의 최대값은 3편에 지나지 않는다. 이에 유의해서 풀면 된다. #include #include #include using namespace std; int solution(vector citations) { int answer = 0; sort(citations.begin(), citation..
2023.10.19 -
프로그래머스 K번째 수 C++
구현 문제이다. 배열을 부분 배열로 자르고, 정렬한다음에 k번째 수를 리턴하면 된다. 간단하다 시간 제약도 없어서 따로 알고리즘을 쓸 필요가 없다. #include #include #include using namespace std; vector solution(vector array, vector commands) { vector answer; for (int i=0;i
2023.10.19