이것이 취업을 위한 코딩 테스트다. 그리디 [숫자 카드 게임]

GoshK·2022년 1월 24일
0

이것이 취업을 위한 코딩 테스트다. with 파이썬 - 나동빈

나의 풀이

public class NumberCardGame {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        String[] split = str.split(" ");
        int answer = 0;

        int N = Integer.parseInt(split[0]);
        int M = Integer.parseInt(split[1]);

        int[][] matrix = new int[N][M];

        for(int i = 0; i < N; i++) {
            int minValue = 10001;

            for(int j = 0; j < M; j++) {
                matrix[i][j] = Integer.parseInt(br.readLine());
                int num = matrix[i][j];
                minValue = Math.min(minValue, num);
            }

            answer = Math.max(answer, minValue);
        }

        System.out.println(answer);
    }
}
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
String[] split = str.split(" ");
int answer = 0;

int N = Integer.parseInt(split[0]);
int M = Integer.parseInt(split[1]);
  • 행의 개수와 열의 개수를 입력받아 변수에 저장한다.
int[][] matrix = new int[N][M];

for(int i = 0; i < N; i++) {
    int minValue = 10001;

    for(int j = 0; j < M; j++) {
        matrix[i][j] = Integer.parseInt(br.readLine());
        int num = matrix[i][j];
        minValue = Math.min(minValue, num);
    }

    answer = Math.max(answer, minValue);
}

System.out.println(answer);
}
  • 해당 행과 열의 개수에 해당하는 사이즈의 2차 배열을 만들어준다.
  • 이중 for 문을 돌면서 해당 행의 열의 개수만큼 숫자를 입력받고, 해당 행에서 가장 작은 숫자를 구한다.
  • 구해진 해당 행의 가장 작은 숫자들 중에서 가장 큰 수를 구해 출력한다.

문제 해설 & 느낀점

처음에 행을 선택한다고 하길래 행을 어디서 입력받는건지 찾아 해맸다. 문제를 다시 읽어보니 입력 받는 것이 아니였다. 그리고 행과 열을 다루길래 2차 배열을 만들어야 되는 줄 알았는데, 해설을 보니 배열을 생성할 필요 없이, 그냥 변수에 바로 값을 입력받고 비교해도 상관이 없었다. 나머지는 이지

0개의 댓글