프로그래머스 Lv.1 코딩테스트

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

하다블 2022. 3. 4. 18:18
반응형

문제는 다음과 같습니다.

코딩테스트 연습 - 모의고사 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 모의고사

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

programmers.co.kr

 

풀이코드는 다음과 같습니다.

#include <string>
#include <vector>
using namespace std;


vector<int> solution(vector<int> answers) {
    vector<int> answer;
    vector<int>score(3);
    int a1[5]={1,2,3,4,5};
    int a2[8]={2,1,2,3,2,4,2,5};
    int a3[10]={3,3,1,1,2,2,4,4,5,5};
    for(int i{0};i<answers.size();i++)
    {
        if(answers[i]==a1[i%5])
        {
            score[0]++;
        }
         if(answers[i]==a2[i%8])
        {
            score[1]++;
        }
         if(answers[i]==a3[i%10])
        {
            score[2]++;
        }
    }
    int maxi=max(max(score[0],score[1]),score[2]);
    for(int i{0};i<3;i++)
    {
        if(score[i]==maxi)
        {
            answer.push_back(i+1);
        }
    }
    return answer;
}

큐(queue)에 들어가있다고 생각하고 문제를 해결하시면 어렵지 않은 문제라고 생각합니다.

배열 맨 끝에 도달하고 다음으로 돌아가는 방법을 아신다면 어렵지 않다고 생각하며, 정렬의 경우에는 숫자를 맨 처음부터 체크하면 자동적으로 오름차순이 됩니다.

반응형