- Published on
๐ ๏ธ[ํ๋ก๊ทธ๋๋จธ์ค]-๋ชจ์๊ณ ์ฌ ๋ฌธ์
๐๋ฌธ์ ์ค๋ช
์ํฌ์๋ ์ํ์ ํฌ๊ธฐํ ์ฌ๋์ ์ค๋ง์ ๋๋ค. ์ํฌ์ ์ผ์ธ๋ฐฉ์ ๋ชจ์๊ณ ์ฌ์ ์ํ ๋ฌธ์ ๋ฅผ ์ ๋ถ ์ฐ์ผ๋ ค ํฉ๋๋ค. ์ํฌ์๋ 1๋ฒ ๋ฌธ์ ๋ถํฐ ๋ง์ง๋ง ๋ฌธ์ ๊น์ง ๋ค์๊ณผ ๊ฐ์ด ์ฐ์ต๋๋ค.
1๋ฒ ์ํฌ์๊ฐ ์ฐ๋ ๋ฐฉ์: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...
2๋ฒ ์ํฌ์๊ฐ ์ฐ๋ ๋ฐฉ์: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...
3๋ฒ ์ํฌ์๊ฐ ์ฐ๋ ๋ฐฉ์: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...
1๋ฒ ๋ฌธ์ ๋ถํฐ ๋ง์ง๋ง ๋ฌธ์ ๊น์ง์ ์ ๋ต์ด ์์๋๋ก ๋ค์ ๋ฐฐ์ด answers๊ฐ ์ฃผ์ด์ก์ ๋, ๊ฐ์ฅ ๋ง์ ๋ฌธ์ ๋ฅผ ๋งํ ์ฌ๋์ด ๋๊ตฌ์ธ์ง ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์กฐ๊ฑด
- ์ํ์ ์ต๋ 10,000 ๋ฌธ์ ๋ก ๊ตฌ์ฑ๋์ด์์ต๋๋ค.
- ๋ฌธ์ ์ ์ ๋ต์ 1, 2, 3, 4, 5์ค ํ๋์ ๋๋ค.
- ๊ฐ์ฅ ๋์ ์ ์๋ฅผ ๋ฐ์ ์ฌ๋์ด ์ฌ๋ฟ์ผ ๊ฒฝ์ฐ, returnํ๋ ๊ฐ์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
โ๏ธ๋ฌธ์ ํ์ด
์ด๋ฒ ๋ฌธ์ ์ ์ฃผ์์ฌํญ์ answers
๊ฐ ๊ฐ๋ณ์ ์ด๊ณ ๊ฐ ์ํฌ์๋ค์ ์ฐ๋ ๋ฐฉ์์ด ๊ณ ์ ์ ์ด๋ผ๋ ์ ์ ์๋ค. ๋ฐ๋ผ์, ์ฐ๋ ๋ฐฉ์์ ๊ท์น์ฑ์ ๋ฐํ์ผ๋ก ๋ค์ด์ฌ answers
๋งค๊ฐ๋ณ์์ ๊ฐ์ ๋น๊ตํ๋ ๋ฐฉ์์ผ๋ก ์นด์ดํ
ํ๋ฉด ์ฝ๊ฒ ํด๊ฒฐ!
โจ๏ธํ์ด ์ฝ๋
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> answers) {
int MAX_NUM = answers.size();
int biggest;
vector<int> returns;
int student[3] = { 0, 0, 0 };
int temparray[5] = {3, 1, 2, 4, 5};
// 1๋ฒ ์ํฌ์ ์ ๋ต ๋น๊ต
for (int i = 0; i < MAX_NUM; i++) {
if (answers[i] == (i % 5) + 1) { student[0]++; }
}
// 2๋ฒ ์ํฌ์ ์ ๋ต ๋น๊ต
for (int i = 0; i < MAX_NUM; i++) {
if (i % 2 == 0 && answers[i] == 2) { student[1]++; }
else {
if (i % 8 == 1 && answers[i] == 1) { student[1]++; }
if (i % 8 == 3 && answers[i] == 3) { student[1]++; }
if (i % 8 == 5 && answers[i] == 4) { student[1]++; }
if (i % 8 == 7 && answers[i] == 5) { student[1]++; }
}
}
// 3๋ฒ ์ํฌ์ ์ ๋ต ๋น๊ต
for (int i = 0; i < MAX_NUM; i++) {
int index = i % 10;
if(answers[i] == temparray[index/2]) { student[2]++; }
}
// ์ ๋ต ํ์ ๋น๊ต
student[1] < student[2] ? biggest = student[2] : biggest = student[1];
biggest < student[0] ? biggest = student[0] : biggest = biggest;
for (int i = 0; i < 3; i++) {
if (student[i] == biggest) { returns.push_back(i+1); }
}
return returns;
}