본문 바로가기
백준 문제 풀이/1차원 배열

(#2562 Java) 최댓값

by _비니_ 2023. 8. 3.
문제

 

 

문제 해결

이 문제에서 최댓값을 구하는 방법을 이전 문제 (#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