반응형
#INFO
문제이름 : 모의고사
난이도 : LEVEL1
사용언어 : C++
문제유형 : 완전탐색
문제출처 : https://programmers.co.kr/learn/courses/30/lessons/42840
#SOLVE
우선 1번,2번,3번 수포자의 정답을 찍는 규칙을 전역으로 벡터에 담아준다.
vector<int> stu1 = {1,2,3,4,5};
vector<int> stu2 = {2,1,2,3,2,4,2,5};
vector<int> stu3 = {3,3,1,1,2,2,4,4,5,5};
정답을 리턴하기 위한 answer 벡터와, 수포자들의 스코어를 저장하기 위한 scores 벡터를 선언해 준다.
vector<int> solution(vector<int> answers) {
vector<int> answer;
vector<int> scores(3);
...
...
return answer;
}
벡터의 크기에 대한 정보가 없기에, answers.size() 만큼 반복문을 돌린다. 그리고 %나머지 연산을 이용해 각 수포자들의 맞춘 정답 개수를 scores 벡터에 저장해준다.
for (int i = 0 ; i < answers.size() ; ++i)
{
if (answers[i] == stu1[i % stu1.size()]) scores[0]++;
if (answers[i] == stu2[i % stu2.size()]) scores[1]++;
if (answers[i] == stu3[i % stu3.size()]) scores[2]++;
}
Algorithm STL의 *max_element를 이용해 최댓값을 구하고, 반복을 돌려서 최댓값과 일치하는 점수를 가진 socres 벡터의 원소가 존재한다면 추가해준다.
int max = *max_element(scores.begin(), scores.end());
for (int i = 0 ; i < scores.size(); ++i)
{
if (scores[i] == max) answer.push_back(i+1);
}
#전체코드(C++)
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> stu1 = {1,2,3,4,5};
vector<int> stu2 = {2,1,2,3,2,4,2,5};
vector<int> stu3 = {3,3,1,1,2,2,4,4,5,5};
vector<int> solution(vector<int> answers) {
vector<int> answer;
vector<int> scores(3);
for (int i = 0 ; i < answers.size() ; ++i)
{
if (answers[i] == stu1[i % stu1.size()]) scores[0]++;
if (answers[i] == stu2[i % stu2.size()]) scores[1]++;
if (answers[i] == stu3[i % stu3.size()]) scores[2]++;
}
int max = *max_element(scores.begin(), scores.end());
for (int i = 0 ; i < scores.size(); ++i)
{
if (scores[i] == max) answer.push_back(i+1);
}
return answer;
}
// 1번 12345
// 2번 21232425
// 3번 3311224455
반응형
'Archive2 > ProblemSolving' 카테고리의 다른 글
[BOJ] 9012 "괄호" 문제 풀이 & 소스 코드 with C/C++ (0) | 2021.07.08 |
---|---|
[BOJ] 9093 "단어 뒤집기" 문제 풀이 & 소스 코드 with C/C++ (0) | 2021.07.08 |
[C/C++] BOJ(백준) 2776 "암기왕" 문제 풀이 & 소스 코드 (feat. 이진탐색) (0) | 2021.05.13 |
[C/C++] BOJ(백준) 11000 "강의실 배정" 문제 풀이 & 소스 코드 (0) | 2021.05.12 |
[C/C++] BOJ(백준) 2847 "게임을 만든 동준이" 문제 풀이 & 소스 코드 (0) | 2021.05.10 |