인프런 커뮤니티 질문&답변

kym9129님의 프로필 이미지
kym9129

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

11. 임시반장정하기

테스트 케이스가 잘못되어있는것 같습니다.

작성

·

304

0

코드는 동일하게 작성하였는데 정답과 오답을 왔다갔다해서 테스트케이스를 확인하게됬습니다.

 

작성한 코드는 아래와 같습니다 점검도 한번 부탁드립니다.

public int solution(int[][] arr) {
		int num=0;
		int max=Integer.MIN_VALUE;
		// i = 학생별 검사
		for(int i=0; i<arr.length; i++) {
			//학생의 겹침 횟수
			int cnt = 0;
			//j = 학년
			for(int j=0; j<arr[i].length; j++) {
				// k = 다른 학생과 비교
				for(int k=0; k<arr.length; k++) {
					if(arr[i][j] == arr[k][j]) cnt++;
				}
			}
			if(max<cnt) {
				max = cnt;
				num = i+1;
			}
		}
		return num;
	}

 

답변 2

0

솔직히 문제가 잘못된게 맞아요.

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

테스트케이스는 정보올림피아드 공식 데이터입니다.

본인의 코드가 문제에서 물어보는 것에 충실하게 구현됐는지 확인해보세요. 

영상 설명에서 제일 안쪽 for문에서 왜 break를 했는지 확인해 보세요.

 

저 케이스에서는 그냥 눈으로 보아도 4번 학생이 더 많아보이는데... 문제가 이상한게 아닌가요?
3번 학생의 경우 2번 겹치고
4,5번학생의 경우 3번 겹치는데.. 
문제가 이상한게 아닌지 한번 검토가 필요할 것 같습니다.

위의 테스트케이스에서 4번학생은 5번학생이랑 두번 같은 반이 되었는데 그 경우에 2번이아니라 1번으로 판단합니다.

그래서 결국 3번학생도 2명 4번학생도 2명인데 그중에서 번호가 작은 3번학생이 선출 된것 같습니다.

kym9129님의 프로필 이미지
kym9129

작성한 질문수

질문하기