|
์ฝ๋ ์์ฑํ๊ธฐ
import java.util.Arrays;
public class MockTest {
public int[] solution(int[] answers) {
int[] answer = {};
int[][] students = new int[][]{{1, 2, 3, 4, 5}, {2, 1, 2, 3, 2, 4, 2, 5}, {3, 3, 1, 1, 2, 2, 4, 4, 5, 5}};
//๊ฐ ํ์๋ค์ ์ ๋ต ๊ฐฏ์๋ฅผ scores์ ๋ด๋๋ค
int[] scores = new int[students.length];
for (int i = 0; i < students.length; i++) {
scores[i] = checkScore(answers, students[i]);
}
//scores์์ ์ต๊ณ ์ ์๋ฅผ ๋ฝ์๋ธ ํ ์ต๊ณ ์ ์๋ฅผ ๋ง์ ํ์์ด ๋ช๋ช
์ธ์ง ์นด์ดํ
int highScore = Arrays.stream(scores).max().getAsInt();
int answerSize = 0;
for (int score : scores) {
if (score == highScore) answerSize++;
}
//์ต๊ณ ์ ์๋ฅผ ๋ง์ ํ์ ์ ๋งํผ ๋ฐฐ์ด์ ์์ฑํ๋ค
answer = new int[answerSize];
for (int i = 0; i < scores.length; i++) {
if(scores[i] == highScore) { // ์ต๊ณ ์ ์ ํ์์ด๋ผ๋ฉด
for (int j = 0; j < answerSize; j++) {
if (answer[j] == 0) {
answer[j] = i+1; // ์ ๋ต ๋ฐฐ์ด์ ์ถ๊ฐํ๋ค.
break;
}
}
}
}
return answer;
}
//์ฐ๋ ํจํด์ ๋ฐ๋ผ ์ ๋ต ๊ฐฏ์๋ฅผ ๋ฆฌํดํ๋ ๋ฉ์๋
private int checkScore(int[] answer, int[] pattern) {
int score = 0;
int patterLength = pattern.length;
for (int i = 0; i < answer.length; i++) {
if (answer[i] == pattern[i%patterLength]) {
score++;
}
}
return score;
}
}
Java
๋ณต์ฌ
|
์ฝ๋ ์ค๋ช
ํ๊ธฐ
ํ์๋ค๋ง๋ค ๋ค๋ฅธ ์ฐ๋ ํจํด์ ์ ์ฉํด์ ๊ฐ ํ์๋ค์ ์ ์๋ฅผ ๋จผ์ ๊ตฌํด์ค๋๋ค.
์ด ๋ ๊ฐ ํ์๋ณ๋ก ์ ์๋ฅผ ๊ณ์ฐํด์ฃผ๋ ๋ฉ์๋ checkScore() ์ ๋ฐ๋ก ์ถ์ถํด์ฃผ์์ต๋๋ค.
๊ฐ ํ์๋ค ๋ณ๋ก ์ ์๊ฐ ๊ณ์ฐ์ด ๋๋๋ฉด ๊ธธ์ด๊ฐ 3 ์ธ score ๋ฐฐ์ด์ 1๋ฒ, 2๋ฒ, 3๋ฒ ํ์์ ์ ์๊ฐ ์์๋๋ก ๋ค์ด๊ฐ๋๋ค.
์ด ๋ฐฐ์ด์์ ๊ฐ์ฅ ๋์ ์ ์ highScore ๋ฅผ ๊ตฌํด์ค ํ์ ์ต๊ณ ๋์ ์๊ฐ ๋ช ๋ช
์ธ์ง ๋ฐ๋ณต๋ฌธ์ ํตํด์ ๊ตฌํฉ๋๋ค.
์ต๊ณ ๋์ ์ ์ ๋งํผ answer ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ์ด๊ธฐํ ํด์ฃผ๊ณ ๊ทธ ํ์๋ค์ ์ธ๋ฑ์ค๋ฅผ ์
๋ ฅํ์ฌ ๋ฐํํฉ๋๋ค.