๋ฌธ์ ์ค๋ช
์ํฌ์๋ ์ํ์ ํฌ๊ธฐํ ์ฌ๋์ ์ค๋ง์ ๋๋ค.
์ํฌ์ ์ผ์ธ๋ฐฉ์ ๋ชจ์๊ณ ์ฌ์ ์ํ ๋ฌธ์ ๋ฅผ ์ ๋ถ ์ฐ์ผ๋ ค ํฉ๋๋ค.
์ํฌ์๋ 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 | return |
[1,2,3,4,5] | [1] |
[1,3,2,4,2] | [1,2,3] |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ์ํฌ์ 1์ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ๋งํ์ต๋๋ค.
- ์ํฌ์ 2๋ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํ๋ ธ์ต๋๋ค.
- ์ํฌ์ 3์ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํ๋ ธ์ต๋๋ค.
๋ฐ๋ผ์ ๊ฐ์ฅ ๋ฌธ์ ๋ฅผ ๋ง์ด ๋งํ ์ฌ๋์ ์ํฌ์ 1์ ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ๋ชจ๋ ์ฌ๋์ด 2๋ฌธ์ ์ฉ์ ๋ง์ท์ต๋๋ค.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> answers) {
vector<int> answer;
vector<int> sup1 = {1, 2, 3, 4, 5};
vector<int> sup2 = {2, 1, 2, 3, 2, 4, 2, 5};
vector<int> sup3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
vector<int> cnts = { 0, 0, 0 };
if( answers.empty() )
return answer;
for( int i = 0; i < answers.size(); i++ )
{
if( answers[i] == sup1[i%sup1.size()])
cnts[0]++;
if( answers[i] == sup2[i%sup2.size()])
cnts[1]++;
if( answers[i] == sup3[i%sup3.size()])
cnts[2]++;
}
int max = *max_element(cnts.begin(), cnts .end());
for(int i = 0; i <3; i++)
{
if( max == cnts[i] )
answer.push_back(i+1);
}
return answer;
}
๋ถ๋๋ฝ๊ฒ๋ ๋๋ ์์ ํ์ํ๋ ๋ฒ์ ์๋ฉด์ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ์์ ํ์์ด ๋ญ์ง? ํ๊ณ ์์๋ค;;
์ ์ ํผ๋์ค๋ฌ์ ์ง๋ง
for ๋ฌธ์ ํตํด answers์ ์ ๊ทผํ๋ฉด์, ๋ฏธ๋ฆฌ ์ ์ ํด๋์
์ํฌ์๋ค์ ์ ๋ต์ง์ ๋น๊ตํ๋ฉด์ ์ ๋ต ๊ฐ์๋ฅผ ์ฆ๊ฐ์ํค๋ฉด ๋๋ ๋ฌธ์ ๋ค
cnts๋ฅผ int ํ ๋ฐฐ์ด๋ก ํ๋ค๊ฐ ์ต๋๊ฐ ์ฐพ๋ ๋ฑ์ ์ฐ์ฐ์ ํ๊ธฐ ์ํด
vector๋ก ๋ณ๊ฒฝํด์ ํ์๋ค
'๐Algorithm ------------ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค - level 3/์ต๊ณ ์ ์งํฉ/C++ (4) | 2023.05.12 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - ํ์๋ฒ(Greedy)/์ฒด์ก๋ณต/C++ (0) | 2021.08.02 |
ํ๋ก๊ทธ๋๋จธ์ค - ์ ๋ ฌ/k๋ฒ์งธ์/C++ (0) | 2021.07.28 |
ํ๋ก๊ทธ๋๋จธ์ค - ํ/๋๋งต๊ฒ/C++ (0) | 2021.07.28 |
ํ๋ก๊ทธ๋๋จธ์ค - ์คํ/ํ/๊ธฐ๋ฅ๊ฐ๋ฐ/C++ (0) | 2021.07.28 |