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으로 받아서 바로 출력하게 하는 것도 좋은 생각 같다.