문제
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
package org.example.ja;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class MinimumMaximum {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
ArrayList<Integer> result = new ArrayList<>();
for (int i = 0; i < A; i++) {
result.add(sc.nextInt());
}
Collections.sort(result);
int firstElement = result.get(0);
int lastElement = result.get(A-1);
System.out.println(firstElement + " " + lastElement);
}
}
int A = sc.nextInt();
- 사용자로부터 입력된 정수를 A 에 저장한다. 이 정수는 입력할 숫자의 개수를 나타낸다.
ArrayList<Integer> result = new ArrayList<>();
- ArrayList 클래스를 사용하여 정수를 저장할 result 라는 이름의 "동적 배열"을 생성한다.
"동적 배열"
1. 크기 조절 가능 : 배열의 크기를 미리 정하지 않고, 필요에 따라 동적으로 크기를 조절할 수 있다.
이는 배열에 원소를 추가하거나 삭제 할 때 특히 유용하다.
2. 빠른 접근 : 배열처럼 빠른 원소 접근이 가능하다. 배열의 원소는 인덱스를 사용하여 효율적으로 접근할 수 있다.
3. 메모리 효율성 : 필요한 크기만큼의 메모리를 동적으로 할당하므로 메모리 효율성이 높다 . 불필요한 낭비를 줄일 수 있다.
예:
ArrayList (Java)
Vector (C++)
List (Python)
for (int i = 0; i < A; i++) {
result.add(sc.nextInt());
for 루프를 사용하여 사용자로부터 A 개의 정수를 입력받고 각 정수를 result 배열에추가.
Collections.sort(result);
Collections.sort(result) 메소드를 사용하여 result 배열의 원소를 오름차순으로 정렬
int firstElement = result.get(0);
int lastElement = result.get(A-1);
정렬된 배열에서 첫 번째 원소는 최소값이 되고, 마지막 원소는 최대값이 된다.
'코테' 카테고리의 다른 글
양꼬치 (0) | 2023.08.08 |
---|---|
문자열 반복해서 출력하기 (0) | 2023.08.07 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!