프로그래머스 모의고사 C++
2023. 10. 19. 17:41ㆍ알고리즘
시뮬레이션 문제이다.
테스트케이스 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 <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
vector<int> p1 = { 1, 2, 3, 4, 5 };
vector<int> p2 = { 2, 1, 2, 3, 2, 4, 2, 5 };
vector<int> p3 = { 3, 3, 1, 1, 2, 2, 4, 4, 5, 5 };
vector<int> solution(vector<int> answers) {
vector<int> answer;
int ans1 = 0, ans2 = 0, ans3 = 0;
for (int i = 0;i < answers.size();i++) {
if (answers[i] == p1[i % p1.size()]) {
ans1++;
}
}
for (int i = 0;i < answers.size();i++) {
if (answers[i] == p2[i % p2.size()]) {
ans2++;
}
}
for (int i = 0;i < answers.size();i++) {
if (answers[i] == p3[i % p3.size()]) {
ans3++;
}
}
int max_val;
max_val = max(ans1, ans2);
max_val = max(max_val, ans3);
if (ans1 == max_val) {
answer.push_back(1);
}
if (ans2 == max_val) {
answer.push_back(2);
}
if (ans3 == max_val) {
answer.push_back(3);
}
return answer;
}
int main(void) {
vector<int> answers = { 1, 2, 3, 4, 5 };
solution(answers);
return 0;
}
'알고리즘' 카테고리의 다른 글
프로그래머스 카펫 C++ (0) | 2023.10.20 |
---|---|
프로그래머스 피로도 C++ (0) | 2023.10.20 |
프로그래머스 같은 숫자는 싫어 C++ (0) | 2023.10.19 |
프로그래머스 소수찾기 C++ (0) | 2023.10.19 |
프로그래머스 최소직사각형 C++ (0) | 2023.10.19 |