[프로그래머스] K번째

Drumj·2023년 3월 30일
0

문제


풀이

import java.util.Arrays;
class Solution {
    public int[] solution(int[] array, int[][] commands) {
        int[] answer = new int[commands.length];
        for (int i = 0; i < commands.length; i++) {
            answer[i] = Arrays.stream(Arrays.copyOfRange(array, commands[i][0]-1, commands[i][1])).sorted().toArray()[commands[i][2]-1];
            //copyOfRange(원본 배열, 시작, 끝) 은 끝 숫자는 포함하지 않음. 그래서 시작만 -1을 해주면 됨. 그리고 스트림 걸어서 정렬.
            //문제에서는 인덱스 위치가 아닌 n번째 숫자를 뽑아야 하기 때문에 -1을 해줘야 한다.
        }
        return answer;
    }
}

잡담 한가득

오랜만에 벨로그 쓰는데 문제는 매일매일 꾸준히 풀고 있었다.

나름 코드를 잘 짯다고 생각하고 남의 풀이를 보는데
댓글에 자바API 사용하는 것 보다 직접 코드를 짜는게 시간이 덜 걸린다고 별로 좋은 코드는 아니라고 한다...

또는 정렬 문제에서 정렬 라이브러리를 쓰면 어떡하냐 라는...

문제만 해결해서 좋은게 아닌 모양이다.

여러 글들을 보면 코테 문제를 통해 문제해결 능력을 알아보는 시간을 가진다고 하는데
위와 같은 코드로 해결하게 되면 면접관은 안좋게 생각하는 걸까?

문제를 백 몇문제 풀면서 처음으로 고민하게 되었다.

ps) 이 글을 다 쓰고 생각해보니 라이브러리를 못쓰게 하는 코딩테스트도 있다고 하던데 그래서 그런건가???


아무튼 간에!!

코드는 Arrays를 활용해서 되게 간단하게 구현했긴 합니다....
Arrays 알면 되게 쉬운 코드라고 생각해용

음.... 따가운 댓글들의 말대로 좀 느리긴 한것 같네요 흐으으으음

0개의 댓글