๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/42840?language=java
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
์ํฌ์๋ ์ํ์ ํฌ๊ธฐํ ์ฌ๋์ ์ค๋ง์
๋๋ค. ์ํฌ์ ์ผ์ธ๋ฐฉ์ ๋ชจ์๊ณ ์ฌ์ ์ํ ๋ฌธ์ ๋ฅผ ์ ๋ถ ์ฐ์ผ๋ ค ํฉ๋๋ค. ์ํฌ์๋ 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๋ฌธ์ ์ฉ ๋ง์ท์ต๋๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋
import java.util.*;
class Solution {
public int[] solution(int[] answers) {
// ์ํฌ์ 1, 2, 3์ ์ ๋ต ํจํด ์
๋ ฅ
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_score = score[0];
for (int i = 1; i <= 2; i++) {
if (max_score < score[i]) {
max_score = score[i];
}
}
// ์ต๋ ์ ์๋ฅผ ํ๋ํ ์ํฌ์๋ค ์ ์ฅ
List<Integer> temp = new ArrayList<Integer>();
for (int i = 0; i < score.length; i++) {
if (max_score == score[i]) {
temp.add(i+1);
}
}
// ์ ์ฅํ ์ํฌ์๋ค answer์ ์
๋ ฅ
int[] answer = new int[temp.size()];
for (int i = 0; i < temp.size(); i++) {
answer[i] = temp.get(i);
}
// answer ๋ฐํ
return answer;
}
}
'๐งฉ ํ๋ก๊ทธ๋๋จธ์ค > ์๊ณ ๋ฆฌ์ฆ ํ์ด(Java)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ํ๋ก๊ทธ๋๋จธ์ค/Java ] ๋ง์น ํ๊ธฐ (1) | 2025.01.17 |
---|---|
[ ํ๋ก๊ทธ๋๋จธ์ค/Java ] ์์ ๋ง๋ค๊ธฐ (1) | 2025.01.16 |
[ ํ๋ก๊ทธ๋๋จธ์ค/Java ] ๊ณผ์ผ ์ฅ์ (0) | 2025.01.07 |
ํ๋ก๊ทธ๋๋จธ์ค_์นด๋ ๋ญ์น(Java) (4) | 2024.12.16 |
ํ๋ก๊ทธ๋๋จธ์ค_2016๋ (1) | 2024.12.13 |