My Space

반응형

코드
public int[] solution(int[] answers) {
        //수포자 답안
		int no1[] = {1,2,3,4,5};
		int no2[] = {2,1,2,3,2,4,2,5};
		int no3[] = {3,3,1,1,2,2,4,4,5,5};		
		//각 수포자별 정답 갯수
		int no1_cnt = 0;
		int no2_cnt = 0;
		int no3_cnt = 0;		
		for(int i=0; i<answers.length; i++) {
			if(answers[i] == no1[i%no1.length]) no1_cnt ++;
			if(answers[i] == no2[i%no2.length]) no2_cnt ++;
			if(answers[i] == no3[i%no3.length]) no3_cnt ++;
		}		
          //최대 정답 갯수 확인
		int max = 0;
		if(no1_cnt >= no2_cnt) {
         	     max = no1_cnt;
        	} else {
        	     max = no2_cnt;
   	    	}
	    	if(max < no3_cnt) {
                	max = no3_cnt;
        	}		
		//최대 정답자 수 확인
		int max_no = 0;
		if(no1_cnt == max) max_no++;
		if(no2_cnt == max) max_no++;
		if(no3_cnt == max) max_no++;
		
		//최대 정답자 추출 배열 선언
		int[] answer = new int[max_no];
		max_no = 0;		//초기화
		if(no1_cnt == max) {
			answer[max_no] = 1;
			max_no++;
		}
		if(no2_cnt == max) {
			answer[max_no] = 2;
			max_no++;
		}
		if(no3_cnt == max) {
			answer[max_no] = 3;
			max_no++;
		}			
		return answer;
    }
    
    public static void main(String args[]) {
		Solution sol = new Solution();
        int[] val = {1,2,3,4,5};        
        System.out.println(sol.solution(val));
	}
설명
더보기

배열 answers의 length만큼 수포자 no1, no2, no3의 답을 반복해서 비교를 한다.

각 no1, no2, no3의 length는 다르므로 (i%no1.length)로 각 no1, no2, no3의 배열을 반복한다. 

즉, answers.length = 8일경우

    index = 0일때, no1[0]

    index = 1일때, no1[1]

    index = 2일때, no1[2]

    index = 3일때, no1[3]

    index = 4일때, no1[4]

    index = 5일때, no1[0]

    index = 6일때, no1[1]

    index = 7일때, no1[2]

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading