https://school.programmers.co.kr/learn/courses/30/lessons/42840
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> answers) {
vector<int> answer;
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};
int cnt1=0,cnt2=0,cnt3=0;
int id1=0,id2=0,id3=0;
for(int i=0;i<answers.size();i++)
{
if(answers[i]==a1[id1])
cnt1++;
if(answers[i]==a2[id2])
cnt2++;
if(answers[i]==a3[id3])
cnt3++;
id1= (id1+1)%5;
id2= (id2+1)%8;
id3= (id3+1)%10;
}
int maxCnt = (cnt1 < cnt2)? max(cnt2,cnt3):max(cnt1,cnt3);
if(maxCnt==cnt1)
answer.push_back(1);
if(maxCnt==cnt2)
answer.push_back(2);
if(maxCnt==cnt3)
answer.push_back(3);
return answer;
}
3명의 사람이 답을 표시하는 방식이 있다. 이 방식으로 채점했을 때 누가 가장많이 맞췄는지를 리턴하는 문제이다.
아주 간단하게 접근했다. 먼저 3명의 패턴을 배열에 각각 저장하고 for문을 돌리며 답이 맞았으면 각 변수에 카운트하는 방식이다.
그 후 가장 큰 값을 maxCnt에 저장하고 1번부터 maxCnt와 동일한 점수인지 체크하여 answer에 넣는다.
'알고리즘 > 프로그래머스 1단계' 카테고리의 다른 글
프로그래머스 - 소수 만들기 - C++ (0) | 2024.07.18 |
---|---|
프로그래머스 - 기사단원의 무기 - C++ (0) | 2024.07.18 |
프로그래머스 - 2016 - C++ (0) | 2024.07.17 |
프로그래머스 - 폰켓몬 - C++ (0) | 2024.07.17 |
프로그래머스 - 카드 뭉치 - C++ (0) | 2024.07.17 |