강의

멘토링

커뮤니티

Inflearn Community Q&A

dltjdqls12007345's profile image
dltjdqls12007345

asked

Introduction to Java Algorithm Problem Solving: Coding Test Preparation

11. Choosing a Temporary Class President

코드 질문 드립니다.

Written on

·

245

0

import java.util.*;

  

public class Main {

      public static void main(String[] args) {

      Main T = new Main();

        Scanner in = new Scanner(System.in);

        int n = in.nextInt();

        int[][] arr = new int[n][5];

        for (int i = 0; i < n; i++) {

            for (int j = 0; j < 5; j++) {

                arr[i][j] = in.nextInt();

            }

        }

        System.out.println(T.solution(n, arr));

    }

 

    private static int solution(int n, int[][] arr) {

        int answer = 0;

        int temp;

        int high = 0;

        for (int k = 0; k < n; k++) {

            temp = 0;

            for (int i = 0; i < n; i++) {

              // if(k == i) continue;

                for (int j = 0; j < 5; j++) {

                    if (arr[k][j] == arr[i][j]) {

                        temp++;

                        break;

                    }

                }

            }

            if (temp > high) {

                high = temp;

                answer = k + 1;

            }

        }

 

        return answer;

    }

 

}

안녕하세요. 강의 듣기 전에 혼자 풀어본 코드인데요.


현재 학생(k)과 전체 학생 i(0 < i < n)를 각 학년별로  j(0 < j < 5) 비교하면서

같은 반인 경우(arr[k][j] == arr[i][j]),  카운팅을 하고 break로 다음으로 넘어가는 식으로 작성을 했습니다.

근데 현재 학생(k)과 비교 학생(i)이 같은 순간(자기 자신)에 continue를 하니까 오답이 뜨고, 해당 코드를 지우면 정답이 되는데 둘 다 정답이 아닌가 해서 질문 올립니다!

java코테 준비 같이 해요!

Answer 2

0

code-tree님의 프로필 이미지
code-tree
Questioner

  그 경우를 생각 못 했네요..! 감사합니다!!

0

codingcamp님의 프로필 이미지
codingcamp
Instructor

안녕하세요^^

모두가 서로 같은 반을 한 적이 한 번도 없다고 생각해보세요. 

그러면 i for문이 끝나고 나온 temp 값은 항상 0일 겁니다.

dltjdqls12007345's profile image
dltjdqls12007345

asked

Ask a question