STUDY/자료구조

선형자료구조 - Array

까미이모 2023. 10. 19. 00:10

한 변수에 한가지 타입의 데이터를 여러개 넣을 수 있는 방법

  • 많은 수의 데이터를 다룰 때 사용하는 자료구조
  • 각 데이터를 인덱스와 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