[ํ๋ก๊ทธ๋๋จธ์ค] ๋ชจ์๊ณ ์ฌ
https://programmers.co.kr/learn/courses/30/lessons/42840
๋ฌธ์ ์ค๋ช
์ํฌ์๋ ์ํ์ ํฌ๊ธฐํ ์ฌ๋์ ์ค๋ง์ ๋๋ค. ์ํฌ์ ์ผ์ธ๋ฐฉ์ ๋ชจ์๊ณ ์ฌ์ ์ํ ๋ฌธ์ ๋ฅผ ์ ๋ถ ์ฐ์ผ๋ ค ํฉ๋๋ค. ์ํฌ์๋ 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ํ๋ ๊ฐ์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
Code
class Solution {
public int[] solution(int[] answers) {
int[] result;
int[] score = new int[3];
int[] one = {1,2,3,4,5};
int[] two = {2,1,2,3,2,4,2,5};
int[] three = {3,3,1,1,2,2,4,4,5,5};
for(int i = 0; i<answers.length; i++){
if(one[i%5]==answers[i]) score[0]++;
if(two[i%8]==answers[i]) score[1]++;
if(three[i%10]==answers[i]) score[2]++;
}
int max = 0;
int[] maxidx = new int[3];
for(int i=0;i<3;i++){
if(score[i]>max){
max=score[i];
}
}
int size=0;
for(int i=0;i<3;i++){
if(max==score[i]){
maxidx[i]=1;
size++;
}
}
result = new int[size];
int a = 0;
for(int i=0;i<3;i++){
if(maxidx[i]==1){
result[a++] = i+1;
}
}
return result;
}
}
Code ์ค๋ช
1,2,3๋ฒ ์ํฌ์๋ค์ด ์ผ์ ํ ํจํด์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ํจํด์ ๊ฐ๊ฐ์ ๋ฐฐ์ด์ ์ ์ฅํด์ค๋ค(one, two, three)
๊ทธ ๋ค์ ์
๋ ฅ๊ฐ์ธ answers์ ๊ธธ์ด๋งํผ ๋ฐ๋ณต๋ฌธ์ ๋๋ ค์ ํจํด๊ณผ ๋ต์ด ์ผ์นํ๋ฉด ์ผ์นํ ์ํฌ์์ score๋ฅผ ์ฌ๋ ค์ค๋ค.(0๋ถํฐ ์์)
๊ทธ ํ์ score์ ์ต๋๊ฐ์ max์ ์ ์ฅํ๊ณ score๊ฐ max๊ฐ๊ณผ ์ผ์นํ๋ ์ธ๋ฑ์ค๋ฅผ maxidx๋ฅผ ์ด์ฉํด์ ๊ธฐ๋กํ๊ณ size๋ฅผ ์ด์ฉํด์ ์ต๋๊ฐ์ ๊ฐ์ง ์ฌ๋์ด ๋ช๋ช
์ธ์ง ์ฒดํฌํ๋ค.
๊ทธ ์ดํ์ result๋ฅผ size๋งํผ ํ ๋นํด์ฃผ๊ณ maxidx๋ฅผ ํตํด์ ์ต๋๊ฐ์ธ ์ํฌ์๋ฅผ result์ ๋ฃ์ด์ค๋ค.
๋ฐฐ์ด์
์ฒ์์ ๋ฌธ์ ๋ฅผ ๋ดค์๋๋ ์ด๋ป๊ฒ ํ์ง ๋ชจ๋ฅด๊ฒ ์ด์ ๋ฌด์ํ๊ฒ ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฌ๋ฉด์ ์กฐ๊ฑด๋ฌธ์ ๊ณ์ ๋ฃ์ด์ฃผ๋ ์์ผ๋ก ํ๋ค๊ฐ
์ฝ๋๊ฐ ๋๋ฌด ๋ณต์กํด์ ธ์ ํฌ๊ธฐํ๋ค.
๊ทผ๋ฐ ์ผ์ ํ ํจํด๋ค์ ๋ฐฐ์ด๋ก ์ ์ธํด์ค์ ๋น๊ตํด์ฃผ๋๊น ์ฝ๋๊ฐ ๊ต์ฅํ ๊ฐ๋จํด์ก๋ค.(๊ตฌ๊ธ์ ๋์์ผ๋ก ์๊ฒ๋์๋ค...)
๋ฌธ์ ๋ฅผ ์ ์ถํ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์ ํ์ด๋ฅผ ํฌ๋๊น Math.max() ํจ์๋ฅผ ์ฌ์ฉํ๋ ํ์ด๊ฐ ์์๋ค.
Math.max๋ ๋ ๊ฐ์ ๋น๊ตํด์ ํฐ ๊ฐ์ ๋ฆฌํดํด์ฃผ๋ ๋ฉ์๋์ด๋ค. ๋ค์๋ฌธ์ ๋ถํฐ๋ ์ฌ์ฉํด ๋ด์ผ๊ฒ ๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algoritm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ์ฒด์ก๋ณต (0) | 2021.07.13 |
---|---|
[Algoritm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ํฐ์ผ๋ชฌ (0) | 2021.07.12 |
[Algorithm/JAVA][ํ๋ก๊ทธ๋๋จธ์ค] ์์ฃผํ์ง ๋ชปํ ์ ์ (0) | 2021.07.11 |
[Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์ (0) | 2021.07.10 |
[Algorithm/JAVA][ํ๋ก๊ทธ๋๋จธ์ค]K๋ฒ์งธ ์ (0) | 2021.07.07 |