
난이도: ★☆☆☆☆ • solved on: 2025-07-05

자료구조
알고리즘/기법
핵심 키워드
- 문제 분해
- 입력을 한 줄씩 받아서 공백 단위로 분리, 각 값을 int로 변환
- 각 숫자가 현재 최댓값보다 크면, 최댓값과 위치를 동시에 갱신
- 핵심 로직 흐름
while (입력 줄 존재): for (각 숫자): if (현재 숫자 > max): max = 현재 숫자 index = [행, 열] print max, index[0]+1, index[1]+1 ``- 예외 처리
- 인덱스는 1부터 시작하므로, 마지막 출력 시 +1
- 입력이 9줄이 아닐 때(EOF 등) 종료
import java.util.*;
import java.lang.*;
import java.io.*;
class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int max = 0;
int[] index = new int[2];
int cnt = 0;
while(true){
String s = br.readLine();
if(s==null) {
break;
} else {
String[] row = s.split(" ");
for(int i=0;i<row.length;i++){
int num = Integer.parseInt(row[i]);
if(num>max){
max = num;
index[0] = cnt;
index[1] = i;
}
}
}
cnt++;
}
index[0] += 1;
index[1] += 1;
System.out.println(max+"\n"+index[0]+" "+index[1]);
}
}
(0-based/1-based)을 반드시 문제에서 확인하고 반영해야 한다.while+for 구조로 충분히 한 번만에 원하는 값을 구할 수 있다.비슷한 유형 (GPT 추천) : [2563] 색종이, [2738] 행렬 덧셈
확장 문제: