한 변수에 한가지 타입의 데이터를 여러개 넣을 수 있는 방법
- 많은 수의 데이터를 다룰 때 사용하는 자료구조
- 각 데이터를 인덱스와 1:1 대응 하도록 구성
- 데이터가 메모리 상에 연속적으로 저장됨
배열의 특징
- 인덱스를 사용하여 값에 바로 접근할 수 있다.
- 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다. 값을 삽입하거나 삭제하려면 해당 인덱스 주변에 있는 값을 이동시키는 과정이 필요하다.
- 배열의 크기는 선언할 때 지정할 수 있으며, 한 번 선언하면 크기를 늘리거나 줄일 수 없다.
- 구조가 간단하므로 코딩테스트에서 많이 사용한다.
배열의 bigO
access | O(1) |
search | O(n) |
insertion | O(n) |
deletion | O(n) |
2차원 배열
2차원 배열이란 배열의 원소로 1차원배열을 가지는 배열이다. 보통 2차원 배열에서 앞에 있는 대괄호를 1차원, 뒤에 있는 대괄호를 2차원이라고 한다. 1차원의 크기만 지정하고 2차원의 크기를 지정하지 않을 수 있다. 하지만 1차원을 비우고 2차원의 크기만 지정할 순 없다.
int[][] arr = new int[2][]; -> (O)
int[][] arr = new int[][2]; -> (X)
int[][] arr = new int[][]; -> (X)
int[][] arr = {{1, 2, 3}, {4, 5, 6}; //배열의 초기화+값지정
a[0][0] = 1 | a[0][1] = 2 | a[0][2] = 3 |
a[1][0] = 4 | a[1][1] = 5 | a[1][2] = 6 |
arr[0] = int 배열
arr[0][0] = int 값
배열 관련 문제 - 백준 10818번 "최소, 최대"
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N =sc.nextInt();
int[] arr = new int[N];
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
for (int i = 0; i < N; i++) {
arr[i] = sc.nextInt();
}
for (int i = 0; i < arr.length; i++) {
if(arr[i] < min){
min = arr[i];
}
if(arr[i] > max){
max = arr[i];
}
}
System.out.printf("%d %d\n", min, max);
}
}
'STUDY > 자료구조' 카테고리의 다른 글
[Java] 힙(Heap) 자료구조 (1) | 2023.10.23 |
---|---|
[자바] 연결리스트(Linked List) 특징과 종류 (0) | 2023.10.21 |
[Java] HashMap 정리 (1) | 2023.10.20 |
큐(Queue) 자료구조 정리 (0) | 2023.10.17 |
스택(Stack) 정리 (0) | 2023.10.17 |