728x90
https://programmers.co.kr/learn/courses/30/lessons/42840?language=java
레벨 1의 완전탐색이라 그냥 쉽게 반복문 돌려서 풀었다
바아로 코드 보자
자바 코드)
import java.util.*;
class Solution {
public ArrayList<Integer> solution(int[] answers) {
// 1 : 1, 2, 3, 4, 5 (5)
// 2 : 2, 1, 2, 3, 2, 4, 2, 5 (8)
// 3 : 3 ,3 ,1, 1, 2, 2, 4, 4, 5, 5 (10)
ArrayList<Integer> answer = new ArrayList<>();
int[] num = new int[3];
int[] one = {1, 2, 3, 4, 5};
int[] two = {2, 1, 2, 3, 2, 4, 2, 5};
int[] three = {3 ,3 ,1, 1, 2, 2, 4, 4, 5, 5};
for(int i=0;i<answers.length;i++) {
int a = answers[i];
if(a == one[i%5]) {
num[0]++;
}
if(a == two[i%8]) {
num[1]++;
}
if(a == three[i%10]) {
num[2]++;
}
}
int max=num[0];
int maxIdx = 0;
for(int i=1;i<3;i++) {
if(num[i]>max) {
maxIdx = i;
max = num[i];
}
}
for(int i=0;i<3;i++) {
if(num[i] == max) {
answer.add(i+1);
}
}
return answer;
}
}
우선 1, 2, 3번 정답지를 배열에 저장한다
그리고 반복마디의 길이만큼 나머지를 구해서 답을 비교하고 맞으면 num 배열 값을 추가했다
num 배열은 각각 1, 2, 3번 애들이 몇개나 맞았는지 계산하기 위해 구한 것이다
반복이 끝나면 num 배열에서 최댓값을 구하고 중복된 애들이 있을수도 있으니까 num 배열의 반복문을 돌면서 가장 많이 맞은 애들의 index를 answer에 추가해준다
여기서 answer에 추가를 해줘야해서 int[] 를 ArrayList<Integer>로 바꿔줬다
끝!
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[완전탐색] 소수 찾기 - JAVA (0) | 2022.05.12 |
---|---|
[JAVA] 백준 11055번 - 가장 큰 증가 부분 수열 (0) | 2022.05.10 |
[힙] 더 맵게 - JAVA (0) | 2022.04.29 |
[스택/큐] 주식가격 - JAVA (0) | 2022.04.28 |
[스택/큐] 다리를 지나는 트럭 - JAVA (0) | 2022.04.28 |
댓글