-
[프로그래머스] 모의고사개발공부/코딩테스트 연습문제 2022. 1. 7. 11:56
문제 설명과 제한조건

풀이
import java.util.ArrayList; import java.util.Arrays; class Solution { public int[] solution(int[] answers) { int[][] poza = {{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 = {0,0,0}; int[] answer; int max; int count = 0; for(int i = 0; i < answers.length; i++){ if(poza[0][i%5] == answers[i]) score[0]++; if(poza[1][i%8] == answers[i]) score[1]++; if(poza[2][i%10] == answers[i]) score[2]++; } max = Math.max(score[0], Math.max(score[1], score[2]));; for(int i = 0; i < score.length; i++){ if(score[i] == max) count++; } answer = new int[count]; count = 0; for(int i = 0; i < score.length; i++){ if(score[i] == max) { answer[count] = i+1; count++; } } return answer; } }++
사실 리스트로 풀고 싶어서 이것 저것 시도하다 시간이 엄청 오래 걸렸다.
3번까지 없다보니 그리고 배열로 반환하다보니.. 하드코딩이 돼서 마음이 아프다.
1. max = Math.max(score[0], Math.max(score[1], score[2]));
최댓값을 구하는 문제 기본 score[1] 과 score[2]를 비교해서 높은 값을 score[0] 과 비교하는 방법인 것 같다.
사실 비교 갯수가 많지 않아서 다행이었다...
'개발공부 > 코딩테스트 연습문제' 카테고리의 다른 글
[프로그래머스] 3진법 뒤집기 (0) 2022.01.10 [프로그래머스] 실패율 (0) 2022.01.10 [프로그래머스] 약수의 개수와 덧셈 (0) 2022.01.07 [프로그래머스] K번째수 (0) 2022.01.06 [프로그래머스] 체육복 (0) 2022.01.06