문제
문제 해결
이 문제에서 최댓값을 구하는 방법을 이전 문제 (#10818) 과 다르게 해야하는 이유는 정렬하면 안되기 때문!! 이다.
이전 문제에서는 Arrays.sort() 메소드를 사용해 오름차순으로 정렬시킨 후, 인덱스의 마지막 값을 출력하면 해결되는 문제였다. But 이 문제는 최댓값이 몇 번째에 입력됐는지를 함께 출력해야 하므로 이전 방법으로 해결할 수 없다.
그럼 어떻게 해야할깡
일단 아래 세 가지의 변수 설정을 해줘야 한다.
1. 최댓값을 저장할 변수 (max)
2. 인덱스 번호 (index)
3. 값을 입력 받을 때마다 값을 올릴 변수 (count) => 몇 번째로 입력받았는지 알기 위해
int max = 0;
int index = 0;
int count = 0;
변수 설정을 했다면, 배열에 들어있는 값들을 하나씩 value에 저장하고, 저장할 때마다 count를 하나씩 올려줌.
value가 max보다 크면 value 값을 max에 넣고, index에 count 값, 즉 입력받은 순서를 저장한다.
for (int value : arr) {
count++;
if(value > max) {
max = value;
index = count;
}
}
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[] arr = { in.nextInt(), in.nextInt(), in.nextInt(),
in.nextInt(), in.nextInt(), in.nextInt(),
in.nextInt(), in.nextInt(), in.nextInt() };
int max = 0;
int index = 0;
int count = 0;
for (int value : arr) {
count++;
if(value > max) {
max = value;
index = count;
}
}
System.out.print(max + "\n" + index);
}
}
반응형
'백준 문제 풀이 > 1차원 배열' 카테고리의 다른 글
(#10813 Java) 공 바꾸기 (0) | 2023.08.08 |
---|---|
(#10810 Java) 공 넣기 (0) | 2023.08.04 |
(#10818 Java) 최소, 최대 (0) | 2023.08.03 |
(#10871 Java) X보다 작은 수 (0) | 2023.08.03 |
(#10807 Java) 개수 세기 (0) | 2023.08.03 |