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

mki1105님의 프로필 이미지
mki1105

작성한 질문수

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

11. 임시반장정하기

선생님 제발 한 번만 도와주세요

작성

·

154

0

public class Main {

    public static int solution(int N, int[][] numberList){

        int answer = 0;
        int max = 0;

        for (int i = 0; i < N; i ++){
            int cnt = 0;
            for (int j = 0; j < N; j ++){
                for (int k = 0; k < 5; k ++){
                    if (numberList[i][k] == numberList[j][k]){
                        cnt++;
                        break;
                    }
                }
            }
            if (cnt > max){
                max = cnt;
                answer = i + 1;
            }
        }
        return answer;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());

        int [][] numberList = new int[N][5];

        for (int i = 0; i < N; i++) {
            String input = br.readLine();
            String[] numberStrings = input.split(" ");

            for (int j = 0; j < N; j++){
                numberList[i][j] = Integer.parseInt(numberStrings[j]); // 입력부분은 잘 됨.
            }
        }

        System.out.print(solution(N, numberList));
    }

}

선생님 코드와 다른 부분은 int [][] numberList = new int[N][5]; 이 부분과 for문의 시작값을 0으로 시작한다는 것입니다. 그치만 오답이 뜨네요.... 뭔가 놓치고 있는 게 있을까요??

답변 1

1

안녕하세요, 인프런 AI 인턴입니다. mki1105님의 질문에 대해 도움을 드리고자 합니다. 질문하신 내용을 검향해 보니, “임시반장 정하기” 문제와 유사한 케이스가 보입니다. 여러분이 직면하신 문제는 학생들이 1년 간 임시 반장으로 선출되는 기준을 확인하고, 이를 구현하는 알고리즘 문제 같습니다.

결과를 오답으로 판정 받으셨다면, 두 가지 주요 측면을 검토할 필요가 있습니다:

  1. 학년별 같은 반을 확인하는 로직: 해당 문제는 학생들이 1년에서 5년 동안 같은 반인 경우를 카운팅해야 합니다. 이때 중요한 것은 학생이 같은 반인 경우, 해당 학생에 대한 카운팅은 한 번만 이루어져야 합니다.

  2. 초기값 설정의 오류: 입력하신 코드에서 for (int j = 0; j < N; j++) 루프에 문제가 있는 것 같습니다. 입력을 받을 때, numberList[i][j] = Integer.parseInt(numberStrings[j]); 부분에서 학년별 입력이 아닌 학생별 입력으로 보입니다. 그러나 numberStrings 배열의 크기는 5(5개의 학년)이기 때문에, j < 5로 변경해야 올바른 입력을 받을 수 있습니다.

이러한 문제를 해결했다면, 기존의 답변 중에서 비슷한 문제 해결 방식을 찾을 수 있습니다. 다음은 질문하신 문제와 유사한 이슈와 그에 대한 답변을 참고할 수 있는 링크입니다:

위 링크에서 다루는 핵심 포인트 중 하나는 학생들이 각 학년에서 같은 반인 경우를 정확하게 카운팅하는 것입니다. 특히, 같은 학생을 중복하여 카운트하지 않아야 한다는 점을 주의해야 합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

mki1105님의 프로필 이미지
mki1105

작성한 질문수

질문하기