ONLINE JUDGE/배열
[백준10818] 최소, 최대
W_W_Woody
2022. 2. 9. 03:00
https://www.acmicpc.net/problem/10818
10818번: 최소, 최대
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
www.acmicpc.net

방법1. Arrays.sort() 메서드 이용하기
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
int[] arr = new int[N];
for (int i = 0; i < N; i++) {
arr[i] = in.nextInt();
}
in.close();
Arrays.sort(arr);
System.out.print(arr[0] + " " + arr[N - 1]);
}
}
Arrays.sort() 라는 메소드가 있다.
이 메소드는 배열에 저장된 원소 값을 오름차순으로 정렬해주는 메소드다.
이 메소드를 활용하여 정렬하면 최솟값은 배열의 첫번째 원소(index 0)에, 최댓값은 배열의 마지막 원소(arr.length-1)에 있을테니 이를 출력하면 된다.
방법2. hasMoreTokens() 이용하기
import java.util.Arrays;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int index = 0;
int[] arr = new int[N];
while(st.hasMoreTokens()) {
arr[index] = Integer.parseInt(st.nextToken());
index++;
}
Arrays.sort(arr);
System.out.print(arr[0] + " " + arr[N - 1]);
}
변수 선언 후 증감연산자사용. for문으로 사용안하고
보다시피 일단 입력받은 정수들을 배열에 저장하기 위해서 StringToken 에 들어있는 모든 토큰들이 없어질 때까지 배열에 모두 담는다.
(참고로 hasMoreTokens() 는 StringTokenizer 에 토큰이 남아있으면 true, 비어있으면 false를 반환한다.)
for문 이용하기
package step4;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Day15_10818_4 { // for문으로 돌렸을 때
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int array[] = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
for(int j=0;j<array.length;j++) { //0 1 2 3 4
array[j] = Integer.parseInt(st.nextToken());
System.out.println("array["+ j +"]="+array[j]);
}
System.out.println(array[0] + " " + array[N - 1]);
Arrays.sort(array);
System.out.println(array[0] + " " + array[N - 1]);
}
}

