바야바네 움집
[Level1] 모의고사 본문
📌문제
https://programmers.co.kr/learn/courses/30/lessons/42840
📌풀이
그냥 for문으로 다 탐색했다. 비교 대상인 수포자들의 답안이 미리 공개되어 있어서 편했음.
📌코드
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> answers) {
vector<int> answer;
vector<int> first = {1, 2, 3, 4, 5};
vector<int> second = {2, 1, 2, 3, 2, 4, 2, 5};
vector<int> third = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
vector<int> score = {0, 0, 0};
for(int i=0; i<answers.size(); i++)
{
if(answers[i] == first[i % 5]) score[0]++;
if(answers[i] == second[i % 8]) score[1]++;
if(answers[i] == third[i % 10]) score[2]++;
}
if(score[0] >= score[1] && score[0] >= score[2]) answer.push_back(1);
if(score[1] >= score[0] && score[1] >= score[2]) answer.push_back(2);
if(score[2] >= score[0] && score[2] >= score[1]) answer.push_back(3);
return answer;
}
값 비교 후 answer에 넣게 되는 코드 세 줄은
int they_max = *max_element(they.begin(),they.end());
for(int i = 0; i<3; i++) {
if(they[i] == they_max) answer.push_back(i+1);
}
이런식으로도 바꿀 수 있는 것 같다. 하지만 algorithm 헤더를 추가해야함.
'🧶 알고리즘 > 🎲프로그래머스Programmers' 카테고리의 다른 글
[Level1] 예산 (0) | 2021.11.20 |
---|---|
[프로그래머스] 위장 (0) | 2021.11.17 |
[프로그래머스] 전화번호 목록 (0) | 2021.11.17 |
Comments