본문 바로가기
프로그래밍/백준 알고리즘 코드

백준 2562번 java 최댓값 (1차원 배열)

by 졸린이 2020. 9. 3.
반응형

백준 2562번 java 최댓값 (1차원 배열)

 

 

9개의 정수를 입력받아 가장 큰 값과 그 값이 있는 위치를 출력하는 프로그램이다.

 

배열을 9의 크기로 선언하고 for문으로 원소를 채워준 후 if문으로 비교한 후 가장 큰 값의 위치를 저장해 두었다가 반복문이 끝나면 출력해주면 된다.

 

코드로 보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.Scanner;
 
//baekjoon_2562
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n=9;
        
        int max = 0;
        int ar[] = new int[n];
        for(int i=0; i<n; i++) {
            ar[i] = sc.nextInt();
            
            if(ar[max] < ar[i])
                max = i;
        }
        System.out.println(ar[max] + "\n" + (max+1));
    }
}
cs

 

line 7 : 배열의 크기를 n에 저장한다.

line 9 : max 가장 큰 값의 배열 위치를 뜻한다. 초깃값으로는 0을 저장한다.

line 10 : 배열 ar을 선언한다. 

line 11 : for문으로 배열 원소를 입력하고 비교할 것이다. 9번 반복하면 된다.

line12 : 원소입력.

line14,15 : ar[max] 보다 ar[i]가 더 크면 max에 i값을 저장시킨다. 즉 기존의 (0부터) 값보다 후에 입력한 값이 더 크면 가장 큰 값의 위치를 입력한 값의 위치로 바꾸고 아니면 가만 둔다.

line17 : for문이 다 돌면 최댓값의 위치가 나왔다. 출력만 하면 된다. ar[max]로 값 먼저 출력하고 두 번째 줄에 출력해야 하므로 System.out.println()를 한번 더 써도 되지만 한 줄에 표기하고 싶어 + "\n" +로 줄 넘김 한다.

최댓값의 위치가 max+1인 경우는 배열의 원소 위치가 0부터~8까지지만 출력에서 원하는 것은 1~9까지 이기 때문에 +1을 해준다.

(max+1)에 괄호를 한번 더 입히는 이유는 자바에서 출력할 때 + 는 변수와 상수나, 문자열을 붙이는 의미이기 때문에 예를 들어 최댓값의 위치가 7이면 괄호를 없앨 때 71이 출력되어 버린다. (max+1)로 해야 8이 출력된다.

 

반응형

댓글