반응형
코딩테스트 연습 - 모의고사
수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는
programmers.co.kr
풀이
파이썬으로 풀었던 문제를 자바로 다시 풀어봤다.
패턴 3가지에 대해서 연산을 통해 맞힌 숫자를 계산했고, 패턴 중 가장 많이 맞은 개수를 max로 저장했다.
그리고 max와 같은 값을 갖는 것들의 인덱스를 저장한다.
같은 경우 오름차순으로 출력해야 하기 때문에 정렬, 그리고 배열로 출력한다.
전체 소스코드
import java.util.*;
class Solution {
public int[] solution(int[] answers) {
int[][] patterns = {
{1,2,3,4,5},
{2,1,2,3,2,4,2,5},
{3,3,1,1,2,2,4,4,5,5}
};
int[] score = new int[3];
int max = 0;
for (int k = 0; k < patterns.length; k++) {
int cnt = 0;
int size = patterns[k].length;
for (int i = 0; i < answers.length; i++) {
if (answers[i] == patterns[k][i % size]) cnt++;
}
score[k] = cnt;
max = Math.max(max, cnt);
}
List<Integer> list = new ArrayList<>();
for (int i = 0; i < score.length; i++) {
if (score[i] == max) list.add(i+1);
}
Collections.sort(list);
int[] answer = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
answer[i] = list.get(i);
}
return answer;
}
}
'Algorithm' 카테고리의 다른 글
[Algorithm] 프로그래머스 K번째 수 (0) | 2021.07.02 |
---|---|
[Algorithm] 프로그래머스 소수 찾기 (0) | 2021.07.01 |
[Algorithm] 프로그래머스 카펫 (0) | 2021.06.29 |
[Algorithm] 프로그래머스 여행경로 (0) | 2021.06.28 |
[Algorithm] 프로그래머스 단어 변환 (0) | 2021.06.27 |