문제 

N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.

 

입력

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

 

출력

첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.

 

 

 

 

 

 

 

 

제출 답안 


import java.util.*;
public class Main{

	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int[] arr = new int[N];

		for(int i=0; i<N; i++){
			arr[i] = sc.nextInt();
		}

		sc.close();

		Arrays.sort(arr);
		System.out.println(arr[0] + " " + arr[N-1]);
		}
}

 

 

 

 

 

 

  • 매번 Scanner로 입력받다가, 속도면에서는 BufferedReader가 낫길래 처음으로 답변 제출을 해봤는데 수차례 틀렸다.
  • BufferedReader보다 Scanner 가 훨씬 쉽고 사용하기도 간단해서 자꾸 Scanner만 찾게 된다. 
  • 역시 아래 블로그에서 힌트를 얻었다. 
  • https://st-lab.tistory.com/43
 

[백준] 10818번 : 최소, 최대 - JAVA [자바]

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

st-lab.tistory.com

 

import java.util.*;
import java.io.*;

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.println(arr[0] + " " + arr[N-1]);

	}
}

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts