프로그래머스 코딩테스트 연습 - 수포자(Level 1)
PS/Programmers

프로그래머스 코딩테스트 연습 - 수포자(Level 1)

programmers

 

문제

프로그래머스 코딩테스트 연습 - 수포자(Level 1)

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

 

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

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

programmers.co.kr


사용 알고리즘

- 완전탐색

 

풀이

각 수포자의 문제 찍는 방식이 일정한 주기로 반복되므로 나머지 연산을 이용해 answer마다 정답 여부를 확인.

직접 세보고 max값 찾아 출력.

 

코드

#include <string>
#include <vector>
#include <algorithm>
#include <stdio.h>

using namespace std;

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

 

프로그래머스 첫 문제..

맨날 백준만 풀다가 여기서 처음 풀어봤는데 재밌다...

728x90