코딩테스트 문제풀이/프로그래머스

[프로그래머스] 모의고사

itaeiou 2020. 2. 27. 14:15
반응형

프로그래머스

완전탐색

모의고사

 

https://programmers.co.kr/learn/courses/30/lessons/42840

 

코딩테스트 연습 - 모의고사 | 프로그래머스

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3,

programmers.co.kr

 

#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<int> answers) {
    vector<int> answer;
    int su1[5] = {1,2,3,4,5};
    int su2[8] = {2,1,2,3,2,4,2,5};
    int su3[10] = {3,3,1,1,2,2,4,4,5,5};
    int cnt1=0, cnt2=0, cnt3=0, max;
    int size = answers.size();
    
    for(int i=0; i<size; i++) {
        if(answers[i] == su1[i%5]) {
            cnt1++;
        }
        if(answers[i] == su2[i%8]) {
            cnt2++;
        }
        if(answers[i] == su3[i%10]) {
            cnt3++;
        }
    }
    
    max = cnt1;
    answer.push_back(1);
    if(cnt1 == cnt2) {
        answer.push_back(2);
    }
    else if(cnt1 < cnt2) {
        answer.clear();
        answer.push_back(2);
        max = cnt2;
    }
    
    if(max == cnt3) {
        answer.push_back(3);
    }
    else if(max < cnt3) {
        answer.clear();
        answer.push_back(3);
        max = cnt3;
    }
    
    return answer;
}
반응형