백준만 풀기 섭섭해서 프로그래머스도 한문제 풀어봤다.
날먹하려고 가장 만만한 브루트포스로 풀었다.
근데 벡터 사용이 어색해서 좀 버벅였다...ㅋ
문제 자체는 아주 쉬웠다.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> answers) {
vector<int> answer;
int score[3] = {0, };
int idx[3] = {0, };
const int giver1[5] = {1, 2, 3, 4, 5};
const int giver2[8] = {2, 1, 2, 3, 2, 4, 2, 5};
const int giver3[10] = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
for(int i = 0; i < answers.size(); i++){
if(answers[i] == giver1[idx[0]++]) score[0]++;
if(answers[i] == giver2[idx[1]++]) score[1]++;
if(answers[i] == giver3[idx[2]++]) score[2]++;
idx[0] = idx[0] % 5;
idx[1] = idx[1] % 8;
idx[2] = idx[2] % 10;
}
int m = max(score[0], score[1]);
m = max(m, score[2]);
for(int i = 0; i < 3; i++)
if(m == score[i]) answer.push_back(i+1);
return answer;
}
후기)
벡터는 신이다. std::max_element() 라는게 있는 모양임.
더 깔끔하게 구할 수도 있었다.
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 섬 연결하기 (2) | 2022.01.06 |
---|---|
[프로그래머스] 정수 삼각형 (9) | 2022.01.04 |
[프로그래머스] 등굣길 (0) | 2022.01.02 |
[프로그래머스] 가장 먼 노드 (1) | 2021.12.30 |
[프로그래머스] 네트워크 (1) | 2021.12.30 |