티어 : Bronze 3
정답여부 : 정답
알고리즘 유형 :수학, 구현
시간 제한 : 1초
💡문제
- 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
💡문제 분석
- 입력된 수의 최소의 수 최대의 수를 출력하면 되는 문제
💡알고리즘 설계
- 수를 배열에 넣고
- min에는 Integer의 max의 값을 max에는 Integer에 min의 값을 넣어주며
- 각 수를 비교하는데 만약 수가 작으면 min에 크면 max에 대입
💡시간복잡도
- O(N)
💡코드
import java.io.*;
import java.util.*;
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());
int[] numbers = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
numbers[i] = Integer.parseInt(st.nextToken());
}
int min_number = Integer.MAX_VALUE;
int max_number = Integer.MIN_VALUE;
for (int i = 0; i < numbers.length; i++) {
if (min_number > numbers[i]) {
min_number = numbers[i];
}
if (max_number < numbers[i]) {
max_number = numbers[i];
}
}
System.out.println(min_number + " " + max_number);
}
}
💡 틀린 이유
통과
💡 느낀점 or 기억할정보
없음.