코딩테스트/코딩테스트(Java)
[코딩테스트] Java - 자료구조
cogito30
2025. 2. 9. 08:25
반응형
배열
- 배열: 같은 자료형의 묶음. 크기가 고정
- 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();
}
}
스택
코드
예시
큐
코드
예시
해시
코드
예시
트리
코드
예시
집합
코드
예시
그래프
코드
예시
반응형