곽로그
[프로그래머스 level1] 모의고사 본문
반응형
programmers.co.kr/learn/courses/30/lessons/42840
import java.util.ArrayList;
import java.util.Collections;
class Solution {
public int[] solution(int[] answers) {
int[] answer = new int[3];
int[] oneOriginal = {1, 2, 3, 4, 5};
int[] twoOriginal = {2, 1, 2, 3, 2, 4, 2, 5};
int[] threeOriginal = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
int index1 = 0;
int index2 = 0;
int index3 = 0;
int count1 = 0;
int count2 = 0;
int count3 = 0;
for (int i = 0; i < answers.length; i++) {
if (index1 % oneOriginal.length == 0) {
index1 = 0;
}
if (answers[i] == oneOriginal[index1]) {
count1++;
}
++index1;
if (index2 % twoOriginal.length == 0) {
index2 = 0;
}
if (answers[i] == twoOriginal[index2]) {
count2++;
}
++index2;
if (index3 % threeOriginal.length == 0) {
index3 = 0;
}
if (answers[i] == threeOriginal[index3]) {
++count3;
}
++index3;
}
int max = Math.max(count1,Math.max(count2,count3));
ArrayList<Integer> maxList =new ArrayList<Integer>();
if(max==count1){
maxList.add(1);
}
if(max==count2){
maxList.add(2);
}
if(max==count3){
maxList.add(3);
}
answer=new int[maxList.size()];
for(int i= 0;i<maxList.size();i++){
answer[i]=maxList.get(i);
}
return answer;
}
}
위의 코드도 통과되기는 하지만
if (index1 % oneOriginal.length == 0) {
index1 = 0;
}
if (answers[i] == oneOriginal[index1]) {
count1++;
}
++index1;
부분을 나머지를 이용해서 더 간단하게 바꿀 수 있다.
import java.util.ArrayList;
import java.util.Collections;
class Solution {
public int[] solution(int[] answers) {
int[] answer = new int[3];
int[] oneOriginal = {1, 2, 3, 4, 5};
int[] twoOriginal = {2, 1, 2, 3, 2, 4, 2, 5};
int[] threeOriginal = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
int count1 = 0;
int count2 = 0;
int count3 = 0;
for (int i = 0; i < answers.length; i++) {
if(answers[i]==oneOriginal[i%oneOriginal.length]){
count1++;
}
if(answers[i]==twoOriginal[i%twoOriginal.length]){
count2++;
}
if(answers[i]==threeOriginal[i%threeOriginal.length]){
count3++;
}
}
int max = Math.max(count1,Math.max(count2,count3));
ArrayList<Integer> maxList =new ArrayList<Integer>();
if(max==count1){
maxList.add(1);
}
if(max==count2){
maxList.add(2);
}
if(max==count3){
maxList.add(3);
}
answer=new int[maxList.size()];
for(int i= 0;i<maxList.size();i++){
answer[i]=maxList.get(i);
}
return answer;
}
}
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 level2] H-Index (0) | 2020.08.25 |
---|---|
[프로그래머스 level2] 카펫 (0) | 2020.08.19 |
[프로그래머스 level1] 모의고사 (푸는 중) (0) | 2019.12.16 |
*[프로그래머스 level1] 나누어떨어지는 숫자배열 (0) | 2019.12.15 |
*[프로그래머스 level1] K번째 수 (0) | 2019.12.15 |
Comments