10818번: 최소, 최대
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
www.acmicpc.net

내 코드
import java.util.Arrays;
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//테스트 케이스 숫자 입력
int m = sc.nextInt();
int[] n = new int[m];
// 테스트 케이스 입력 값만큼 n의 배열 값을 int로 입력
for(int i = 0; i < n.length; i++) {
n[i] = sc.nextInt();
}
sc.close();
Arrays.sort(n);
System.out.printf("%d %d",n[0], n[m-1]);
}
}
Arrays.sort() 메소드를 이용해서 입력 받는 배열의 각 원소를 오름차순으로 정렬하고 여기서 가장 낮은 값은 배열의 첫 번째 원소에, 그리고 가장 큰 값은 배열의 마지막 원소에 들어있는 것을 printf로 출력했다.
생각해야 할 것
- 두 정수의 입력 값이 공백 하나를 기준으로 구분되어 주어진다.
방법 2. 입력 받은 값을 바로 비교
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int max = -1000000;
int min = 1000000;
int m = sc.nextInt();
int[] num = new int[m];
for(int i = 0; i < m; i++) {
num[i] = sc.nextInt();
if(max < num[i]) {
max = num[i];
}
if(min > num[i]) {
min = num[i];
}
}
sc.close();
System.out.println(min + " " + max);
}
}
반복문을 이용해서 인덱스 값을 가져오고, 그것을 max와 min의 값과 비교한다. 여기서 max는 가질 수 있는 범위에서 가장 작은 값으로 설정하고 min은 가장 큰 값으로 초기화해서 어떠한 입력 값이 들어오더라도 초기값을 받을 수 있도록 한다.
'Problem Solving > BOJ' 카테고리의 다른 글
[백준 2577번/1차원 배열] 숫자의 개수 - Java (0) | 2021.03.15 |
---|---|
[백준 2562번/1차원 배열] 최댓값 - Java (0) | 2021.03.15 |
백준 10952번 while문 A + B ⑤ - Java (0) | 2021.03.12 |
백준 10950번 for문 A+B ③ - Python (0) | 2021.02.17 |
백준 2379번 for문 구구단 - Python (0) | 2021.02.17 |