https://www.acmicpc.net/problem/2562
[ 문제 ]
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61
이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
[ 입력 ]
첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.
[ 출력 ]
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.
[ 입출력 예시 ]
예제 입력 | 예제 출력 |
---|---|
3 29 38 12 57 74 40 85 61 | 85 8 |
- 입력되는 값들은 자연수이므로 가장 큰 값을 담아줄 변수(max)를 0으로 초기화하여 선언한다. (최댓값을 구분하는 문제는 문제의 조건을 잘 보고 초기화 해줄 값을 잘 정해줘야함)
몇 번째 수 인지 알려줄 변수(order)도 선언해준다.
- 총 9개를 받으므로 for문을 9번 돌려서 입력 된 수랑 max값을 비교하여 입력 된 값이 더 크다면 max값을 입력받은 값으로 수정하고 몇 번째 수인지 인덱스+1 값을 order변수에 담아주고 최종 출력에 max와 order값을 출력한다.
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;
int order = 0;
int num = 0;
for(int i=0; i<9; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
num = Integer.parseInt(st.nextToken());
if(num > max) {
max = num;
order = i+1;
}
}
System.out.print(max + "\n" + order);
}
}