2023. 8. 12. 11:30ㆍProgramming/기술 정리
해당 방법은 프로그래머스의 K번째 수 문제에서 원하는 시작인덱스 ~ 원하는 종료인덱스까지의 배열을 추천하기 위해 공부했던 방법이다.
알고리즘으로 직접적으로 푸는 방법과, API를 사용하는 방법 두가지를 고민했는데
자바 자체에서 제공되는 메소드를 공부하기 위해 사용방법을 정리하였다.
[방법 1]
int[] arr1 = {1,2,3,4}
/*
복사하려는기존 arr, startIndex, EndIndex
단, EndIndex - startIndex로 새로운 배열의 길이를 결정하므로, 해당 값이 꼭 0이상이어야한다.
아니면 error를 뱉어낸다.
*/
int[] newArr = Arrays.copyOfRange(arr1,1,3);
[방법 2]
int[] arr1 = {1,2,3,4}
int[] arr2 = {10, 20, 30, 40, 50};
/*
기존 arr, 기존 arr에서 복사하려는 startIndex, 새로운 arr, 새로운 arr에서 복사시작 index(더하려는 시작 index), 기존의 복사 arr에서 복사길이
즉, 기존 arr에서 복사하려는 startIndex 이 0이고, 기존의 복사 arr에서 복사길이가 3이면
arr2의 1번 인덱스 지점에 기존 arr1의 0~2번 인덱스까지가 복사된다.
*/
System.arraycopy(arr1, 0, arr2, 1, 3);
+) 단, 기존 API를 사용하는 방법이 훨씬 간결하고 코드가 깔끔하기는 하지만 알고리즘으로 푸는 방법보다 무조건 속도가 빠르다는 뜻은 아니다. 대용량 데이터를 처리하여 사용할때는 속도를 비교해보고 사용해야할거 같다.
'Programming > 기술 정리' 카테고리의 다른 글
[강의 정리] AWS 입문 강의 정리 - 기본 용어 정리 (0) | 2024.05.16 |
---|---|
[Linux] 프로세스 목록 확인, 해당프로세스 확인, 프로세스 kill 하기 (0) | 2023.10.04 |
[JAVA] Long to String, Char to String (feat. StringBuilder) (0) | 2023.07.15 |
[Vue.js] Vue Routing 하기 / Vue routes params (0) | 2023.07.13 |
[DB] 테이블 주석 달기、 테이블 컬럼명 주석 달기 (0) | 2023.06.23 |