백준 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이 출력된다.
'프로그래밍 > 백준 알고리즘 코드' 카테고리의 다른 글
백준 3052번 java 나머지 (boolean 배열) (4) | 2020.09.04 |
---|---|
백준 2577번 java 숫자의 개수 (Array) (0) | 2020.09.04 |
백준 10818번 java 최소, 최대 (1차원 배열) (0) | 2020.09.03 |
백준 10996번 java 별 찍기 - 21 for문 (0) | 2020.09.02 |
백준 2446번 java별 찍기 - 9 for()문이 여섯개!! (0) | 2020.08.30 |
댓글