본문 바로가기
Algorithm(코딩테스트)/코딩테스트 | 기초 개념 시리즈

[JAVA] 1차원 배열

by 카랑현석 2024. 11. 26.

1차원 배열 기초 문법

 

1. 정렬

  • 오름차순 정렬 Arrays.sort(arr)
  • 내림차순 정렬 Arrays.sort(arr, Collections.reverseOrder())
// 배열 오름차순 정렬 - Arrays.sort(arr);
// 배열 내림차순 정렬 - Arrays.sort(arr, Collections.reverseOrder());

Integer[] arr1 = {3,5,9,6,2};
Arrays.sort(arr1); // 오름차순 정렬

for(int i=0; i<arr1.length; i++) {
    System.out.println(arr1[i]);
}

// 내림차순 정렬
Arrays.sort(arr1, Collections.reverseOrder()); // Collections를 사용하려면 wrapper 자료형이어야 하므로 Integer 사용
for(int i=0; i<arr1.length; i++) {
    System.out.println(arr1[i]);
}

 

2. 배열 복사

  • 배열 복사 Arrays.copyOf(arr, arr.length) / Arrays.copyOf(arr, startIndex, endIndex)
  • 메서드로 처리하는 것이 for으로 순회하는 것보다 약 2배 빠르다.
// 배열 복사 - Arrays.copyOf(arr, length);
// 배열의 특정 인덱스만 복사(startIndex~endIndex-1까지) - Arrays.copyOfRange(arr, startIndex, endIndex); 

int[] arr1 = {10,20,30,40,50};
int[] arr2 = new int[arr1.length];
int[] arr3 = {60,70,80,90,100};

// arr1 을 arr2 에 할당
arr2 = Arrays.copyOf(arr1, arr1.length);
for(int i=0; i<arr2.length; i++) {
    System.out.println(arr2[i]);
}

// arr3의 2~3 인덱스만 arr2에 할당 
arr2 = Arrays.copyOfRange(arr3,  2, 4); // arr3[2]~arr3[3] 할당
for(int i=0; i<arr2.length; i++) {
    System.out.println(arr2[i]);
}

 

3. 배열의 max/min 메모이제이션 시 참고 문법

  • Integer 범위의 최댓값 / 최솟값 저장
int a = Integer.MAX_VALUE;
int b = Integer.MIN_VALUE;

 

추천 문제

코드트리_개수 세기 https://www.codetree.ai/missions/4/problems/count-one-to-nine/description #배열의 메모이제이션
코드트리_십의 자리 숫자 https://www.codetree.ai/missions/4/problems/number-of-tens-digit/description #배열의 메모이제이션
코드트리_배열 놀이 https://www.codetree.ai/missions/4/problems/play-with-array/description #배열 문법공부
코드트리_가장 왼쪽에 있는 최댓값 https://www.codetree.ai/missions/4/problems/leftmost-max-value/description #배열의 메모이제이션+변수 이용
코드트리_자동차 단일 거래 이익 최대화하기 https://www.codetree.ai/missions/4/problems/max-profit-of-single-car/description #변수를 활용한 메모이제이션
코드트리_두 숫자의 차의 최솟값 https://www.codetree.ai/missions/4/problems/minimum-difference-between-two-numbers/submissions #변수를 활용한 메모이제이션, #정렬 특성 활용
코드트리_함수를 이용한 연속부분수열 여부 판단하기 https://www.codetree.ai/missions/5/problems/to-determine-whether-a-continuous-subsequence-is-made-using-a-function/description #배열 인덱스 응용