반응형
SMALL
https://programmers.co.kr/learn/courses/30/lessons/42840
import java.util.*;
class Solution {
public int[] solution(int[] answers) {
int[] answer = {};
// 문제에 주어진대로 규칙을 그냥 배열에 넣어줌 (동일하게 반복되므로)
int first[] = {1,2,3,4,5};
int second[] = {2,1,2,3,2,4,2,5};
int third[] = {3,3,1,1,2,2,4,4,5,5};
// 사람 배열 선언 (총 3명)
int person[] = new int[3]; // default 0으로 초기화
for(int i = 0; i < answers.length; i++){
if(answers[i] == first[i % first.length]) // 하나의 배열이 아니라 계속 반복되는거니까 나머지 값으로 위치 지정
person[0]++;
if(answers[i] == second[i % second.length])
person[1]++;
if(answers[i] == third[i % third.length])
person[2]++;
}
int max = Math.max(Math.max(person[0], person[1]), person[2]); // 이제 3개 중에 제일 큰 값 찾아주기
// Math.max 함수는 인자 2개짜리 함수니까 2개먼저 구하고 다시 함수 돌림
// 이제 정답 리스트 선언
List<Integer> maxPerson = new ArrayList<Integer>();
// 가장 큰 값이랑 같으면 그 사람 번호(i+1) 리스트에 넣기
for(int i = 0; i < person.length; i++){
if(max == person[i]) {
maxPerson.add(i+1);
}
}
// 동일한 사람 있으면 오름차순
Collections.sort(maxPerson);
answer = new int[maxPerson.size()];
// 배열에 옮겨줌
for(int i = 0; i < answer.length; i++){
answer[i] = maxPerson.get(i);
}
// 배열 반환
return answer;
}
}
반응형
LIST
'JAVA > Algorithm' 카테고리의 다른 글
[프로그래머스/java] 2016년 (0) | 2020.10.23 |
---|---|
[프로그래머스/java] K번째수 (0) | 2020.10.21 |
[프로그래머스/java] 완주하지 못한 선수 (0) | 2020.10.21 |
[프로그래머스/java] 두 개 뽑아서 더하기 (0) | 2020.10.21 |
[프로그래머스/java] 크레인 인형 뽑기 (0) | 2020.10.21 |