Javascript 알고리즘 문제를 풀어보고 싶어서 Programmers 코딩테스트에 도전.. 역시 나 답게(?) 몇 시간의 삽질 끝에 답을 구했다.
문제 설명
나의 풀이
처음에는 array
의 길이만큼 for문을 돌리고 또 commands
의 길이만큼 반복하는 중첩 for문을 돌려서 slice, sort 함수를 사용하는 쪽으로 해결하려 했었고, 당연히 삽질만 반복할 뿐이었다. 결국 for문 없이 forEach
함수로 해결.. 다른 것보다 sort
함수에 대해 더 알아보고 이해되었던 문제 풀이였다고 느낀다.
1
2
3
4
5
6
7
8
9
10
11
function solution(array, commands) {
let answer = [];
commands.forEach(a => {
const arr = array.slice(a[0] - 1, a[1]).sort((a, b) => a - b);
answer.push(arr[a[2] - 1]);
});
return answer;
}
solution([1, 5, 2, 6, 3, 7, 4], [[2, 5, 3], [4, 4, 1], [1, 7, 3]]);
결과 채점 후 타인의 풀이를 보니 나는 그동안 뭐 했나 싶을 정도…
Hero image from Alltechbuzz