배열은 연관된 데이터를 모아서 관리하기 위해서 사용되는 데이터 타입
메모리 공간을 연속적으로 사용함으로 빠른 접근이 가능하다.
인덱스를 사용하여 접근하며 데이터 정렬이 쉽다.
크기가 고정되어있으며 동적인 조정이 어렵다.
요소를 추가, 삭제 하는 경우 메모리 공간을 새롭게 할당함으로 성능에 영향을 줄 수 있다.
메소드 | 시간복잡도 | 설명 |
---|---|---|
검색 | O(n) | 배열의 검색은 순차검색, 인덱스를 알지 못할 때 순서대로 확인 |
삭제 | O(n) | 해당 인덱스를 정확하게 알고 있다면 접근의 개념으로 O(1)의 시간복잡도를 가지지만 해당 인덱스를 찾아야한다면 검색의 시간복잡도인 O(n) |
접근 | O(1) | 찾고자 하는 값이 몇 번째 인덱스에 있는지 알고 있을 경우 빠른 검색 |
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
package homework.week2;
import java.io.*;
import java.util.Arrays;
/**
* @date : 2023-03-17
* 최소, 최대(10818)
*/
public class BOJ10818 {
/**
* N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
*
* 입력
* 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다.
* 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
*
* 출력
* 첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
*/
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine()); // 정수 N
int[] array = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
int max = Arrays.stream(array).max().getAsInt();
int min = Arrays.stream(array).min().getAsInt();
bw.write(String.valueOf(min) + " " + String.valueOf(max));
bw.flush();
bw.close();
br.close();
}
}
int[] array = Arrays.stream(br.readLine().split("")).mapToInt(Integer::parseInt).toArray();
int[] array = {20, 10, 35, 30, 7}
int max = Arrays.stream(array).max().getAsInt();
int min = Arrays.stream(array).min().getAsInt();
배열의 최대, 최소 값 구하기