[프로그래머스] 42748 K번째 수

최대 1 분 소요

프로그래머스 level1

문제


문제 풀이

나의 문제 풀이


참고한 문제 풀이


문제 리뷰

나의 문제 풀이


만족스러운 풀이는 아니다.
i번째부터 j번째까지의 배열을 담는 tempArr
K번째에 있는 수를 담는 resultArr
2개의 배열을 이용해 풀이했다.
tempArr을 ArrayList로 선택한 이유는
원소들을 더하는데 상대적으로 더 간편해서 사용했다.

commands 배열의 크기만큼 반복문을 실행하고
tempArr 선언한 후, i번째부터 j번째까지의 배열을 담는다.
그리고 정렬을 한 후, K번째 수를 resultArr에 담는다.


참고한 문제 풀이


나의 문제 풀이보다 깔끔해보이는 풀이이다. 이 풀이를 가져온 이유는

int[] tempArr = Arrays.copyOfRange(array, a, b);

이 함수 때문이다.
나도 이러한 간단하게 배열을 옮겨올 수 있는 함수를 찾았지만 찾지 못했었다.
이 함수는 범위에 맞게 배열을 복사한다.
주의할 점은 a~b까지의 배열에서, b는 포함하지 않는 점이다.
그래서 b의 값에는 -1을 빼주지 않았다.

TMI

폭풍 업로드!
얼른 level1을 끝내기 위한,,

1일 1알고리즘 완료🤓

댓글남기기