본문 바로가기

programming/코테연습

[Java] 프로그래머스 모의고사 - level1

728x90
반응형
package programmers.leve1;
import java.util.*;
public class 모의고사 {
	public int[] solution(int[] answers) {
		int[] answer= {};
		
		int[] a1 = {1,2,3,4,5};
		int[] a2 = {2, 1, 2, 3, 2, 4, 2, 5};
		int[] a3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5,};
		
		int[] score = new int[3];
		
		for(int i=0; i<answers.length; i++) // 정답과 비교하여 맞은것이 있다면
		{
			if(answers[i]==a1[i%a1.length])
			{
				score[0]++;
			}
			if(answers[i]==a2[i%a2.length])
			{
				score[1]++;
			}
			if(answers[i]==a3[i%a3.length])
			{
				score[2]++;
			}
		}
		
		List<Integer> list=new ArrayList<Integer>(); // 최대값 비교
		int max=Math.max(Math.max(score[0], score[1]),score[2]);
		
		if(max==score[0]) 
		{
			list.add(1);
		}
		if(max==score[1])
		{	
			list.add(2);
		}
		if(max==score[2])
		{
			list.add(3);
		}
		
		Collections.sort(list); // 오름차순 정리
		answer=new int[list.size()];
		
		for(int i=0; i<answer.length; i++)
		{
			answer[i]=list.get(i);
		}
		
		return answer;
	}

}

 새로 알게 된것 정리

 

1. Math.max : 두개의 수를 비교하는 메소드이나, 두 번 겹쳐쓰면 3개 숫자도 비교 가능하다.

2. Collections.sort : List의 값들을 오름차순으로 정렬해준다. 

 

 

 

 

728x90
반응형