Algorithm
[Algorithm] 프로그래머스 모의고사 C++
반응형
https://programmers.co.kr/learn/courses/30/lessons/42840
풀이
- 각 수포자가 찍는 방식의 반복 구간을 배열로 저장한다.
%
연산을 통해 각 수포자의 i번째 답을 구할 수 있다. 이를 정답과 비교한다.- 문제를 맞힌 개수를 비교해 가장 높은 수(
maxCnt
)를 찾는다. - 문제를 맞힌 개수가 같은 사람이 있다면 이를 정렬해 출력해야 하므로, 1번부터
maxCnt
와 같은 값을 가진 사람을answer
에 넣는다.
소스코드
include <vector>
#include <iostream>
using namespace std;
vector<int> solution(vector<int> answers) {
vector<int> answer;
int len = answers.size();
int one[5] = {1, 2, 3, 4, 5};
int two[8] = {2, 1, 2, 3, 2, 4, 2, 5};
int thr[10] = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
int oneCnt = 0;
int twoCnt = 0;
int thrCnt = 0;
for(int i=0; i<len; i++){
if(one[i%5] == answers[i]) oneCnt++;
if(two[i%8] == answers[i]) twoCnt++;
if(thr[i%10] == answers[i]) thrCnt++;
}
int maxCnt = max(oneCnt, twoCnt);
maxCnt = max(maxCnt, thrCnt);
if(maxCnt == oneCnt) answer.push_back(1);
if(maxCnt == twoCnt) answer.push_back(2);
if(maxCnt == thrCnt) answer.push_back(3);
return answer;
}
반응형
'Algorithm' 카테고리의 다른 글
[Algorithm] 프로그래머스 카펫 C++ (0) | 2021.10.25 |
---|---|
[Algorithm] 프로그래머스 소수 찾기 C++ (0) | 2021.10.25 |
[Algorithm] 프로그래머스 H-Index python (0) | 2021.10.07 |
[Algorithm] 프로그래머스 베스트앨범 c++ (Map 활용) (0) | 2021.10.07 |
[Algorithm] 프로그래머스 베스트앨범 python (0) | 2021.10.04 |