[BOJ] 2566

Organ·2023년 9월 23일
0

[문제 풀이]

목록 보기
45/123

최댓값

문제

입출력 및 예제

내 풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

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

        for (int i = 0; i < 9; i++){
            String str = br.readLine();
            StringTokenizer st = new StringTokenizer(str);
            for (int j = 0; j < 9; j++){
                arr[i][j] = Integer.parseInt(st.nextToken());
            }
        }

        int max = Integer.MIN_VALUE;
        int x = 0,y = 0;

        for (int i = 0; i < 9; i++){
            for (int j = 0; j < 9; j++){
                if(max < arr[i][j]){
                    max = arr[i][j];
                    x = i + 1;
                    y = j + 1;
                }
            }
        }
        System.out.println(max);
        System.out.println(x + " " + y);
    }
}

다른 풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		//최댓값을 저장할 변수 선언
		int max = 0;
		//행과 열 번호를 저장할 변수 선언
		String xy = "";
		
		//행과 열에 입력값을 넣어줄 for문
		for(int i = 1; i <= 9; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			for(int j = 1; j <= 9; j++) {
				int N = Integer.parseInt(st.nextToken());
				
				if(max < N) {
					max = N;
					xy = String.valueOf(i) + " " + String.valueOf(j);
				}
			}
		}
		System.out.println(max);
		System.out.println(xy);
	}

}

정리

for문을 두 번 돌릴 필요가 없는데 작성하면서 생각하다보니 자꾸 이런식의 불필요한 연산을 더 하게 되는 것 같다. 아무래도 먼저 논리적으로 생각을 좀 더 하고 코드를 작성하는 습관을 들여야 할 듯. x, y 값을 String으로 받아서 바로 출력하게 하는 것도 좋은 생각 같다.

출처

https://comain.tistory.com/84

0개의 댓글