본문 바로가기

백준 문제 풀기/Array

백준 Array문 단계별 풀기 - 10818번

실패코드

시간이 오래걸려서 그런지 Math 함수를 사용하지 않으면 실패했다고 나온다.

답은 같더라도 방식과 시간에 따라 실패로 나뉘는 것 같다.

import java.util.Scanner;

public class Main {
//	10818번
//	N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
//
//	입력
//	첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
//
//	출력
//	첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
//
//	예제 입력 1 
//	5
//	20 10 35 30 7
//	예제 출력 1 
//	7 35
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int arr[];
		int number = scanner.nextInt();
		int max = 0;
		int min = 0;
		
		max = -100000;
		min = 100000;
		
		arr = new int[number];
		for (int i = 0; i < arr.length; i++) {
			arr[i] = scanner.nextInt();
			
			if(max < arr[i]) {
				max = arr[i];
			}
			
			if(min > arr[i]) {
				min = arr[i];
			}
			
			
		}
		System.out.print(min + " " + max);
		
		
	}
}

성공 코드

import java.util.Scanner;

public class Main {
//	10818번
//	N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
//
//	입력
//	첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
//
//	출력
//	첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
//
//	예제 입력 1 
//	5
//	20 10 35 30 7
//	예제 출력 1 
//	7 35
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int arr[];
		int number = scanner.nextInt();
		int min = 0;
		int max = 0;
		
		max = -1000000;
		min = 1000000;
		
		arr = new int[number];
		for (int i = 0; i < arr.length; i++) {
			arr[i] = scanner.nextInt();	
			min = Math.min(min, arr[i]);
			max = Math.max(max, arr[i]);
		}
		
		System.out.print(min + " " + max);
		
		
		
	}
}