โค๏ธ Problem
- ๋ฌธ์
์ํฌ์๋ ์ํ์ ํฌ๊ธฐํ ์ฌ๋์ ์ค๋ง์ ๋๋ค. ์ํฌ์ ์ผ์ธ๋ฐฉ์ ๋ชจ์๊ณ ์ฌ์ ์ํ ๋ฌธ์ ๋ฅผ ์ ๋ถ ์ฐ์ผ๋ ค ํฉ๋๋ค. ์ํฌ์๋ 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ํ๋ ๊ฐ์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
- ์ ์ถ๋ ฅ ์ & ์ค๋ช
no | answers | result |
1 | [1,2,3,4,5] | [1] |
2 | [1,3,2,4,2] | [1,2,3] |
๐ Solution
ํ์ด
import java.util.ArrayList;
class Solution {
public int[] solution(int[] answers) {
int[] student1 = {1, 2, 3, 4, 5};
int[] student2 = {2, 1, 2, 3, 2, 4, 2, 5};
int[] student3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
int[] scores = new int[3];
for (int i=0; i<answers.length; i++) {
if(student1[i%student1.length] == answers[i]) {
scores[0]++;
}
if(student2[i%student2.length] == answers[i]) {
scores[1]++;
}
if(student3[i%student3.length] == answers[i]) {
scores[2]++;
}
}
int highest = 0;
for(int i=0; i<scores.length; i++) {
highest = Math.max(scores[i], highest);
}
ArrayList<Integer> arr = new ArrayList<Integer>();
for(int i=0; i<scores.length; i++) {
if(scores[i]==highest) {
arr.add(i+1);
}
}
int[] scorers = new int[arr.size()];
for(int i=0; i<scorers.length; i++) {
scorers[i] = arr.get(i);
}
return scorers;
}
}
์ฒ๋ฆฌ์๋ VERY GOOD๐
๐ Comment
์ด ๋ฌธ์ ์ ํต์ฌ์ 1๋ฒ ์ํฌ์, 2๋ฒ ์ํฌ์, 3๋ฒ ์ํฌ์๊ฐ ๊ฐ๊ฐ ์ฐ๋ ๋ฐฉ์์ ๊ฐ์ง์๊ฐ ๋ค ๋ค๋ฅด๋ค๋ ์ ๊ณผ ์ฑ์ ํด์ผํ๋ ๋ฌธ์ ์ ๊ฐ์(answers.length)๊ฐ ๊ณ ์ ๋์ด ์์ง ์๋ค๋ ์ ์ด์๋ค. ๊ทธ๋์ ๊ฐ ์ํฌ์๋ค ๊ฐ์ ๋ฌธ์ ์ฐ๋ ํจํด์ ์ถ์ถํด์ ์ด ๋ฌธ์ ๊ฐ์๋งํผ ํด๋น ํจํด์ ๊ฐ๊ฐ ๋ฐ๋ณต์์ผ์ผํ๋ ๋ถ๋ถ์ด ์์ธ๋ก ์๊ฐ์ ์๊ตฌํ๋ค.
์ฌ๊ธฐ์ ์ผ๋จ ๊ฐ ์ํฌ์์ ์ฐ๋ ๋ฐฉ์์ ๋ฐฐ์ด์ ๋ด์๋ค. ๊ทธ ๋ค์, ๊ฐ ์ํฌ์๋ค์ด ๋งํ ๋ฌธ์ ๊ฐ์๋ฅผ ๋ด์ int[] scores๋ฅผ ๋ง๋ค์ด ๋์๋ค. for ๋ฐ๋ชฉ๋ฌธ์ ์ฌ์ฉํด์ ๊ฐ ์ํฌ์๋ค์ ๋ต์(student1[?], student2[?], students3[?])๊ณผ ํด๋ต(answers[i])๋ฅผ ๋น๊ตํ์ฌ ์ผ์นํ๋ ๊ฒฝ์ฐ์๋ง ๊ฐ๊ฐ scores[0], scores[1], scores[2]๋ฅผ 1์ฉ ์ฆ๊ฐ์ํค๋๋ก ํ์๋ค.
์ฌ๊ธฐ์ ๊ฐ ์ํฌ์๊ฐ ์ฐ๋ ๋ฐฉ์์ ๊ฐ์ง์๊ฐ student1.length, student2.length, student3.length๋ก ๋ค๋ฅด๋ฏ๋ก i๋ฅผ ๊ฐ์์ ๊ฐ์ง์๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋๋ก ํ์๋ค. ๊ทธ ์ด์ ๋ ๊ฐ์ง์๋ ๋ค๋ฅด์ง๋ง ๊ฒฐ๊ตญ ๋ชจ๋ ์ํฌ์๋ค์ ๋ต์ ํจํด์ด ๊ณ ์ ๋์ด ์์ผ๋ฏ๋ก ๋ฌธ์ ์ ๋ฒํธ(i)๋ฅผ ์์ ์ ์ฐ๋ ๋ฐฉ์์ ๊ธธ์ด(student1.length)๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ฉด ์ถ๊ฐ ์์ ์์ด๋ ๊ณ์ ์ฐ๋ ํจํด์ ์ํํ๋๋ก ํ ์ ์์๋ค. ๋ฐ๋ผ์ student1[i%student1.length] == answers[i] ๋ก ์์ฑํ๋ค.
๊ทธ ๋ค์, for ๋ฐ๋ณต๋ฌธ์์ int[] scores์ ๋ค์ด์๋ ๋ง์ถ ๋ต ๊ฐ์๋ฅผ ๋น๊ตํ์ฌ ๊ฐ์ฅ ๋์ ์ ์(int highest)๋ฅผ ์ถ์ถํ๊ณ ArrayList๋ฅผ ์ ์ธํ๋ค. ๋์ ์๊ฐ ๋ช๋ช ์ธ์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ๊ธธ์ด๊ฐ ์ ๋์ ์ธ ArrayList๋ฅผ ์ฌ์ฉํ๋ค. ๋ ๋ค๋ฅธ for ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํด์ scores[i]์ highest๋ฅผ ๋น๊ตํ์ฌ ์ผ์นํ๋ ๊ฒฝ์ฐ์๋ง ArrayList์ ๊ฐ์ ์ ๋ ฅํ๋๋ก ํ์๋ค. ์ด ๋, ์ ๋ ฅํ๋ ๊ฐ์ ์์ ์ ์ํฌ์ ๋ฒํธ(i+1)์ด ๋๋ค. i+1๋ฅผ ํด์ค ์ด์ ๋ i๊ฐ 0๋ถํฐ ์์๋๊ธฐ ๋๋ฌธ์ด๋ค.
๋ง์ง๋ง์ผ๋ก for ๋ฐ๋ชฉ๋ฌธ์ ์ฌ์ฉํด์ int[] scorers์ ArrayList์ ๋ค์ด์๋ ์ํฌ์ ๋ฒํธ๋ฅผ ๋ด์ ๋ฐํํ๋ฉด ๋์ด๋ค.
'Programmers lv-1' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ์ ๊ธ์ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (0) | 2022.12.23 |
---|---|
์์ฃผํ์ง ๋ชปํ ์ ์ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (0) | 2022.12.23 |
์ฝ๋ผ ๋ฌธ์ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (0) | 2022.12.21 |
ํฐ์ผ๋ชฌ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (0) | 2022.12.18 |
2016๋ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (0) | 2022.12.17 |
๋ ๊ฐ ๋ฝ์์ ๋ํ๊ธฐ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (0) | 2022.12.14 |
๋๊ธ