알고리즘/문자열, 정렬

[알고리즘] 임시반장 정하기 with Java, 3차원 배열에 대한 생각

VIPeveloper 2022. 3. 7. 21:22
728x90
반응형

원래 목표했던 대로 저번주에 2차원 배열까지 끝내려고 했지만, 이 문제가 밟혀서 목표를 달성하지 못했다.. 이 문제는 나에게 3차원 배열이 무엇인지 가르쳐준 문제다.

오늘 배운 것

1. 3차원 배열에 대한 생각

. 기준이 2개이다. 기존 2차원 배열에서는 기준이 1개인 것에 대한 비교였지만, 이건 기준 2개를 놓고 변수가 움직이며 if문을 순회하는 로직임을 알게 되었다.

2. 코드

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
        int i = kb.nextInt();
        int[][] arr = new int[i+1][6];
        for (int j = 1; j < arr.length; j++) {
            for (int k = 1; k < 6; k++) {
                arr[j][k] = kb.nextInt();
            }
        }
        solution(arr);
    }

    private static void solution(int[][] arr) {
        int answer = 0,max_num = Integer.MIN_VALUE;
        for (int i = 1; i < arr.length; i++) {
            int cnt = 0;
            for (int j = 1; j < arr.length; j++) {
                if(i==j)continue;

                for (int k = 1; k < 5; k++) {
                    if(arr[i][k] == arr[j][k]){
                        cnt++;
                        break;
                    }
                }
            }
            if(cnt > max_num){
                max_num = cnt;
                answer = i;
            }
        }
        System.out.println(answer);
    }
}
728x90
반응형