코딩테스트 연습 - 모의고사
수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는
programmers.co.kr
문제 풀이
수포자 각각이 찍는 방식의 주기를 파악하면 된다.
수포자1의 주기는 5,
수포자2의 주기는 8,
수포자3의 주기는 10이고
입력 받은 모든 정답을 처음부터 탐색하면서 수포자 각각의 답안과 비교하면 된다.
코드(C++)
#include <string>
#include <vector>
#include <algorithm> // max
using namespace std;
int person1[5] = {1, 2, 3, 4, 5};
int person2[8] = {2, 1, 2, 3, 2, 4, 2, 5};
int person3[10] = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
vector<int> solution(vector<int> answers) {
vector<int> answer;
vector<int> tester(3); // 크기를 설정해주면 전부 0으로 초기화됨
int maxScore = 0;
for(int i = 0 ; i < answers.size() ; i++) {
if(answers[i] == person1[i % 5]) tester[0]++;
if(answers[i] == person2[i % 8]) tester[1]++;
if(answers[i] == person3[i % 10]) tester[2]++;
}
maxScore = max(max(tester[0], tester[1]), tester[2]);
// 1번 수포자부터 탐색 -> 자동 오름차순
for(int i = 0 ; i < 3 ; i++) {
if(tester[i] == maxScore) {
answer.push_back(i+1);
}
}
return answer;
}
반응형
'프로그래머스 > 브루트포스' 카테고리의 다른 글
2021 KAKAO BLIND RECRUITMENT 순위 검색(C++) (0) | 2022.09.22 |
---|---|
2021 KAKAO BLIND RECRUITMENT 메뉴 리뉴얼(C++) (0) | 2022.09.22 |
[2020 카카오공채] 문자열 압축 (0) | 2020.02.11 |