본문 바로가기
코딩테스트/PCCP(Java)

[PCCP] Java - 자료구조

by cogito21_java 2025. 1. 24.
반응형

배열

- 배열: 같은 자료형의 묶음. 크기가 고정

- ArrayList: 같은 자료형의 묶음 크기가 동적

 

코드

더보기

배열

/* 1차원 배열 */
type[] arrName = new type[count]; // 배열 선언 및 0으로 초기화
type[] arrName = {value1, ...}; // 배열 선언 및 초기화

arrName[index]; // 배열값 조회

arrName.length; // 배열의 길이

Arrays.sort(arrName); // 배열의 데이터를 정렬

Arrays.toString(arrName); // 배열의 모든 데이터를 String으로 변환

/* 2차원 배열 */ 
type[][] arrName = new type[rows][columns]; // 배열 선언 및 0으로 초기화
type[][] arrName = {{value1, ...}, {value2, ...}, ...}; // 배열 선언 및 초기화

arrName[arr_index][column_index]; // 배열값 조회

 

ArrayList

ArrayList<ReferenceType> list = new ArrayList<>();
ArrayList<ReferenceType> list = new ArrayList<>(list);

list.add(value); // 리스트 맨뒤 값 추가

list.get(index); // 해당 인덱스의 값에 접근

list.remove(index); // 해당 인덱스의 값 삭제. O(N)

list.size(); // 데이터의 개수

list.isEmpty(); // 비어있는지 여부 확인

Collections.sort(list); // 정렬

 

예시

더보기

배열 정렬

public class Main {
    private static int[] solution(int[] arr) {
        int[] clone = arr.clone(); // 배열을 복사하여 새로운 배열 생성
        Arrays.sort(clone);  // 원본 배열 자체를 정렬
        return clone;
    }
    
    public static void main(String[] args) {
        int[] arr = {1, 7, 2, 8, 3};
        int[] sortedArr = solution(arr);
        System.out.println(Arrays.toString(arr));
        System.out.println(Arrays.toString(sortedArr));
    }
}

배열 중복값 제거후 내림차순 정렬

- Arrays 클래스의 stream()은 stream으로 변환. stream의 Primitive Type인 IntStream의 데이터를 boxed()로 Integer로 변환하고 distinct()를 통해 중복 제거 후 Integer형 배열로 중복 제거된 데이터를 반환

- distinct()는 O(N)을 보장

import java.util.Arrays;
import java.util.Collections;

public class Main {
    private static int[] solution(int[] arr) {
        // 중복값 제거
        Interger[] result = Arrays.stream(arr).boxed().distinct().toArray(Integer[]::new);
        Arrays.sort(result, Collections.reverseOrder()); // 내림차순 정렬
        // int형 배열로 변환
        return Arrays.stream(result).mapToInt(Integer::intValue).toArray();
    }
}

추천 문제

스택

코드

예시

추천 문제

코드

예시

추천 문제

해시

코드

예시

추천 문제

트리

코드

예시

추천 문제

집합

코드

예시

추천 문제

더보기

(프로그래머스)

- Lv 1: 폰켓몬(1845) / 폰켓몬(1845) 해설

- Lv 2: 영어 끝말잇기(12981) / 영어 끝말잇기(12981) 해설 (Java/JS만. 나머지는 해시)
- Lv 2: 전화번호 목록(42577) / 전화번호 목록(42577) 해설 (JS만. 나머지는 해시)

- Lv 3: 섬 연결하기(42861) / 섬 연결하기(42861) 해설

 

(leetcode)

그래프

코드

예시

추천 문제

더보기

 

 

반응형

'코딩테스트 > PCCP(Java)' 카테고리의 다른 글

[PCCP] Java - 기본문법  (1) 2025.01.24