임시 반장 뽑기

최준호·2021년 8월 9일
0

알고리즘 강의

목록 보기
18/79

설명

김갑동 선생님은 올해 6학년 1반 담임을 맡게 되었다.

김갑동 선생님은 우선 임시로 반장을 정하고 학생들이 서로 친숙해진 후에 정식으로 선거를 통해 반장을 선출하려고 한다.

그는 자기반 학생 중에서 1학년부터 5학년까지 지내오면서 한번이라도 같은 반이었던 사람이 가장 많은 학생을 임시 반장으로 정하려 한다.

그래서 김갑동 선생님은 각 학생들이 1학년부터 5학년까지 몇 반에 속했었는지를 나타내는 표를 만들었다.

문제 내용을 자세히 보고 싶다면 인프런 강의를 확인하세요! (결제 필요)

코드

public class TempPresident {
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        int input1 = in.nextInt();
        int[][] arr = new int[input1+1][6];
        for(int i=1; i<=input1; i++){
            for(int j=1; j<=5; j++){
                arr[i][j] = in.nextInt();
            }
        }
        solution(input1, arr);
    }
    public static void solution(int n, int[][] arr){
        int answer = 0;
        int max = Integer.MIN_VALUE;
        for(int i=1; i<=n; i++){
            int count = 0;
            for(int j=1; j<=n; j++){
                for(int k=1; k<=5; k++){
                    if(arr[i][k]==arr[j][k]) {
                        count++;
                        break;
                    }
                }
            }
            if(count>max){
                max = count;
                answer = i;
            }
        }
        System.out.print(answer);
    }
}

문제는 2차원 배열을 기준 값을 정하기 위해 3중 for문으로 풀이해서 푸는 방법이다. 문제를 설계하는 것 까진 괜찮았지만 제한 사항들에 코드를 딱 맞추지 않으면 모두 오답처리가 되어서 로직은 맞았지만 다른 테스트 케이스들을 만족시키지 못해 계속 틀리게 나왔다. 다음부턴 쉬운 문제라고 제한사항 안보고 풀지 말고 제한사항부터 보자

제한사항 때문에 애먹었음 제한사항 꼭 확인하고 문제 풀자!

profile
코딩을 깔끔하게 하고 싶어하는 초보 개발자 (편하게 글을 쓰기위해 반말체를 사용하고 있습니다! 양해 부탁드려요!) 현재 KakaoVX 근무중입니다!

0개의 댓글