N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
5
20 10 35 30 7
7 35
BufferedReader.readLine()
으로 값을 입력받는다.for
문을 이용하여 두번째 값부터 최소값과 최대값을 비교한다.BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int max, min; // 최소값 및 최대값
int n = Integer.parseInt(br.readLine());
int[] arr = new int[n]; // 입력받은 정수의 개수만큼 배열 생성
StringTokenizer st = new StringTokenizer(br.readLine());
int cnt = st.countTokens(); // 토큰의 갯수 얻어오기
for(int i=0; i<cnt; i++) { // 토큰의 갯수만큼 토큰 하나씩 얻어와 배열에 입력
arr[i] = Integer.parseInt(st.nextToken());
}
max = min = arr[0]; // 배열의 첫번째 값을 최소값 및 최대값으로 지정
for(int i=1; i<arr.length; i++) { // 배열의 두번째 값부터 마지막 값까지 비교
if(arr[i] > max)
max = arr[i];
if(arr[i] < min)
min = arr[i];
}
System.out.println(min + " " + max);
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 max, min; // 최소값 및 최대값
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
max = min = Integer.parseInt(st.nextToken()); // 첫번째 값을 최소값 및 최대값으로 지정
for(int i=1; i<n; i++) { // 두번째 값부터 마지막 값까지
int num = Integer.parseInt(st.nextToken()); // 토큰 꺼내오기
if(num > max) // 꺼내온 값이 최대값보다 클 경우
max = num;
if(num < min) // 꺼내온 값이 최소값보다 작을 경우
min = num;
}
System.out.println(min + " " + max);
}
}
근소하지만 차이가 있었다. 본인이 원하는 결과에 맞춰 방법을 택하면 될 것 같다.
구분 | 메모리 | 시간 | 코드길이 |
---|---|---|---|
방법1 (배열 O) | 93368KB | 588ms | 733B |
방법2 (배열 X) | 88880KB | 604ms | 649B |