728x90
๋ฐ์ํ
๋ฌธ์ ๐ต๐ซ
https://school.programmers.co.kr/learn/courses/30/lessons/42840
๋ด ํ๐ฆท
import java.util.*;
class Solution {
public int[] solution(int[] answers) {
// ์ํฌ์๋ค์ ํจํด ์ ์
int[] pattern1 = {1, 2, 3, 4, 5};
int[] pattern2 = {2, 1, 2, 3, 2, 4, 2, 5};
int[] pattern3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
// ์ ์๋ฅผ ๊ณ์ฐํ ๋ฐฐ์ด
int[] scores = new int[3];
// ๊ฐ ๋ฌธ์ ์ ๋ํด ์ํฌ์๋ค์ ๋ต์์ ๋น๊ตํ์ฌ ์ ์ ๊ณ์ฐ
for(int i = 0; i < answers.length; i++) {
if(answers[i] == pattern1[i % pattern1.length]) {
scores[0]++;
}
if(answers[i] == pattern2[i % pattern2.length]) {
scores[1]++;
}
if(answers[i] == pattern3[i % pattern3.length]) {
scores[2]++;
}
}
// ์ ์ผ ๋์ ์ ์๋ฅผ ์ฐพ์
int maxScore = Math.max(scores[0], Math.max(scores[1], scores[2]));
// ๊ฐ์ฅ ๋์ ์ ์๋ฅผ ๋ฐ์ ์ํฌ์๋ฅผ ๋ฆฌ์คํธ์ ์ถ๊ฐ
List<Integer> result = new ArrayList<>();
for(int i = 0; i < scores.length; i++) {
if(scores[i] == maxScore) {
result.add(i+1);
}
}
return result.stream().mapToInt(i -> i).toArray();
}
}
๊ฐ์ฅ ๋ง์ ์ ์๋ฅผ ํ๋ํ ์ฌ๋์ ๋ฐฐ์ด๋ก ๋ฐํํ๋ ๊ฐ๋จํ ๋ฌธ์ ์๋ค!!
๋ด๋๊ฒ ๊น์ง๋ ์ ๋ง ์ฌ์ด๋ฐ return ๋ฌธ ์์ฑํ๋ ๊ณผ์ ์์ ์ด๋ ค์์ด ์์๋ค!
์ฐธ๊ณ ํ๋ฉด ์ข์ ๊ฐ๋ ๋ค โ๏ธ
- .stream()
- stream : ๋ฐ์ดํฐ ์ปฌ๋ ์ ์ ์ถ์ํ๋ก, ์์๋ค์ ์ฐจ๋ก์ฐจ๋ก ๊บผ๋ด ์ฒ๋ฆฌํ ์ ์๋ "๋ฐ์ดํฐ ํ๋ฆ"
- List<Integer> ๊ฐ์ฒด์์ ๊ฐ ์์์ ์ ๊ทผํ ์ ์๋ ์คํธ๋ฆผ์ ์์ฑํ๋ค
- ์คํธ๋ฆผ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์ ์ ์ฝ๊ฒ ํ ์ ์๋๋ก ๋์์ฃผ๋ ์ถ์ํ ๋๊ตฌ์ด๋ค
- .mapToInt(i -> i)
- ์คํธ๋ฆผ์ ๊ฐ ์์๋ฅผ ์ ์๋ก ๋ณํํ๋ค
- i -> i๋ ๋๋ค ํํ์์ผ๋ก, ๋ฆฌ์คํธ์ ๊ฐ ์์๋ฅผ i ๊ทธ๋๋ก ๋ณํํ๋ค๋ ์๋ฏธ์ด๋ค
- ์ด ๊ณผ์ ์์ ๊ฐ์ฒด(Integer)๋ฅผ ์์ ํ์ (int)์ผ๋ก ๋ณํํ๊ฒ ๋๋ค
- .toArray()
- ์คํธ๋ฆผ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด๋ก ๋ณํํ๋ค
- ์ต์ข ์ ์ผ๋ก List<Integer> ๊ฐ int[] ๋ฐฐ์ด๋ก ๋ณํ๋๋ค
728x90
๋ฐ์ํ
'algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฌ๋ฐ๋ฅธ ๊ดํธ (java) (0) | 2024.12.05 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - ํ๊ฒ๋๋ฒ (java) (0) | 2024.11.11 |
ํ๋ก๊ทธ๋๋จธ์ค - k๋ฒ์งธ ์ (java) (1) | 2024.11.10 |
[ํ๋ก๊ทธ๋๋จธ์ค] 3์ง๋ฒ ๋ค์ง๊ธฐ(JAVA) (1) | 2024.05.01 |
๋ฐฑ์ค 1446. ์ง๋ฆ๊ธธ(๋ค์ต์คํธ๋ผ) (0) | 2023.10.27 |