[프로그래머스]모의고사(JAVA)

JESS YANG·2021년 5월 3일

프로그래머스

목록 보기
12/13
post-thumbnail

문제

https://programmers.co.kr/learn/courses/30/lessons/42840

내 코드

public List<Integer> solution(int[] answers) {
	//1
	int[] patn1 = {1, 2, 3, 4, 5};
	int[] patn2 = {2, 1, 2, 3, 2, 4, 2, 5};
	int[] patn3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
	List<int []> patnList = new ArrayList<>();
	patnList.add(patn1);
	patnList.add(patn2);
	patnList.add(patn3);
	List<Integer> rlt = new ArrayList<>();
	int max = 0;
    	//2
	for(int i=0; i<patnList.size(); i++){
		int count = 0;
		int k=0;
		for(int j=0; j<answers.length; j++){
			if(patnList.get(i)[k] == answers[j])
				count ++;
			if(k == patnList.get(i).length -1){
				k = 0;
			} else{
				k++;
			}
			
		}
		//3
		if(count > max){
			max = count;
			rlt = new ArrayList<>();
			rlt.add(i+1);
		}else if(count == max){
			rlt.add(i+1);
		}
		
	}
	
	return rlt;
}

풀이

  1. 세 학생의 찍는 패턴을 배열에 담고 그 배열들을 List에 담았다.
  2. 반복문을 돌면서 주어진 정답일 경우 count를 증가 시켰고 찍기 패턴의 요소(k)가 마지막에 도달했을때 다시 첫번째 요소로 초기화 시켜줬다.
  3. 가장많이 맞춘 학생을 배열에 담는다.

0개의 댓글