๐โ๏ธ ๋ฌธ์ ์ค๋ช
์ํฌ์๋ ์ํ์ ํฌ๊ธฐํ ์ฌ๋์ ์ค๋ง์ ๋๋ค. ์ํฌ์ ์ผ์ธ๋ฐฉ์ ๋ชจ์๊ณ ์ฌ์ ์ํ ๋ฌธ์ ๋ฅผ ์ ๋ถ ์ฐ์ผ๋ ค ํฉ๋๋ค. ์ํฌ์๋ 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ํ๋ ๊ฐ์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
๐ก ์ ์ถ๋ ฅ ์
์ ์ถ๋ ฅ ์ #1
- ์ํฌ์ 1์ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ๋งํ์ต๋๋ค.
- ์ํฌ์ 2๋ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํ๋ ธ์ต๋๋ค.
- ์ํฌ์ 3์ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํ๋ ธ์ต๋๋ค.
๋ฐ๋ผ์ ๊ฐ์ฅ ๋ฌธ์ ๋ฅผ ๋ง์ด ๋งํ ์ฌ๋์ ์ํฌ์ 1์ ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ๋ชจ๋ ์ฌ๋์ด 2๋ฌธ์ ์ฉ์ ๋ง์ท์ต๋๋ค.
๐ฉ ๋ด ํ์ด
import java.util.*;
class Solution {
public int[] solution(int[] answers) {
int[] first = {1,2,3,4,5}; // 5๊ฐ์ฉ ๋ฐ๋ณต
int[] second = {2,1,2,3,2,4,2,5}; // 8๊ฐ์ฉ ๋ฐ๋ณต
int[] third = {3,3,1,1,2,2,4,4,5,5}; // 10๊ฐ์ฉ ๋ฐ๋ณต
int[] score = {0,0,0}; // ๊ฐ ์ํฌ์๋ค์ ์ ์
// ์ํฌ์๋ค์ ์ ์ ๊ณ์ฐ
for(int i=0; i<answers.length; i++) {
if(answers[i] == first[i%5]) score[0]++;
if(answers[i] == second[i%8]) score[1]++;
if(answers[i] == third[i%10]) score[2]++;
}
// ์ต๋ ์ ์ ๊ตฌํ๊ธฐ
int max = Math.max(score[0], Math.max(score[1], score[2]));
// ์ต๋ ์ ์๋ฅผ ๊ฐ์ง ์ํฌ์ ๋ฆฌ์คํธ ์์ฑ
List<Integer> answerList = new ArrayList<Integer>();
for(int i=0; i<score.length; i++) if(max == score[i]) answerList.add(i+1);
// ๋ฆฌ์คํธ๋ฅผ ๋ค์ ๋ฐฐ์ด๋ก ๋ณํ
int[] answer = new int[answerList.size()];
for(int i=0; i<answerList.size(); i++){
answer[i] = answerList.get(i);
}
return answer;
}
}
Max๋ฅผ ์ด์ค์ผ๋ก ์ฌ์ฉํด์ ์ต๋ ์ ์๋ฅผ ๊ตฌํ๋ค.
๋ฆฌ์คํธ๋ฅผ ์์ฑํ๊ณ , ๋ค์ ๋ฐฐ์ด๋ก ๋ฐํํ๋ค.
'Back-end > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ฒ๊ฑฐ ๋ง๋ค๊ธฐ (java) (0) | 2023.08.18 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฒด์ก๋ณต (java) - ๊ทธ๋ฆฌ๋ (0) | 2023.08.17 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ฐพ๊ธฐ (java) (0) | 2023.08.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฝ๋ผ ๋ฌธ์ (java) (0) | 2023.08.12 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ ๊ฐ ๋ฝ์์ ๋ํ๊ธฐ (java) (0) | 2023.08.11 |