반응형
# 문제 출제 사이트
https://www.acmicpc.net/problem/2566
# 문제
<그림 1>과 같이 9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때,
이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오.
예를 들어, 다음과 같이 81개의 수가 주어지면
이들 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다.
# 입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 아홉 개씩 수가 주어진다.
주어지는 수는 100보다 작은 자연수 또는 0이다.
# 출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다.
최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다.
# 제출한 소스코드
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));
StringTokenizer st;
int maxNum = -1;
String result = "";
for ( int i = 1; i <= 9; i++ ) {
st = new StringTokenizer(br.readLine());
for ( int j = 1; j <= 9; j++ ) {
int tempNum = Integer.parseInt(st.nextToken());
if ( tempNum > maxNum) {
maxNum = tempNum;
result = i + " " + j;
}
}
}
System.out.println(maxNum + "\n" + result);
}
}
- 9x9 격자판의 수가 모두 0일 경우의 수를 생각하지 못하고 maxNum 변수에 초기값으로 0일 넣었었다.
위 제출한 코드에서는 maxNum 변수를 -1로 초기값을 할당해 문제를 해결할 수 있게 되었다.
반응형