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

JESS YANG·2021년 5월 3일
0

프로그래머스

목록 보기
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개의 댓글

관련 채용 정보