우당탕탕 개발일기
[프로그래머스 / 자바스크립트] K번째수 본문
728x90
문제만 읽었을 때 파악해본 것은
✔️array의 i ~ j번째는 배열 내에서 i-1번째 ~ j-1번째
✔️배열 자르기는 slice?
✔️그럼 slice를 쓰고 sort로 정렬 한 번 시킨 후 배열 내의 k-1번째 값 리턴하기
이 정도였다. 문제 자체는 파악하기가 쉬웠다.
문제는 commands값이 2차원 배열로 되어있어 리턴할 내용이 여러개라는 것.. 🤯
(= 내가 잘 못하는 것들 중 하나)
행렬의 덧셈부터 2차원 배열에 치여버린 나는 이거 보고 한숨 푹..for중첩문을 돌려야할까?
일단 간단하게 생각해서 돌려봤는데 commands[0]의 결과값이 도출되긴 했다.
그런데 문제는 1️⃣ return이 for문 바깥으로 나오면 값 도출이 어렵다는 것과
2️⃣ +=로 붙여주어도 commands[i]의 값들이 모여지지 않는다는 것.
return값이 꼭 for문 밖에 없어도 되는걸까? 왜 갑자기 합치기가 안되지? push로 값을 넣어야하나?
알고리즘 며칠 쉬었다고 더 빡대가리가 된걸까,,,
💡 나의 최종 코드
function solution(array, commands) {
var answer = [];
for(let i=0; i<commands.length; i++){
let arr = array.slice(commands[i][0] -1, commands[i][1]);
let str = arr.sort((a,b) => a-b);
answer.push(str[commands[i][2]-1]);
};
return answer
}
그러다가 retrun쪽만 push로 밀어넣어보자하고 했는데 갑자기 됐다!
배열 안에 여러 요소들을 모아둘 땐 push!! 오늘의 포인트는 push!!
📍출처
https://programmers.co.kr/learn/courses/30/lessons/42748
728x90
'What I Learned > Algorithm' 카테고리의 다른 글
[javascript] 백준 4948번 베르트랑공준 (0) | 2022.03.02 |
---|---|
[프로그래머스 / 자바스크립트] 폰켓몬 (0) | 2022.01.26 |
[프로그래머스 / 자바스크립트] 문자열 내 마음대로 정렬하기 (0) | 2022.01.24 |
[프로그래머스 / 자바스크립트] 같은 숫자는 싫어 (0) | 2022.01.24 |
[프로그래머스 / 자바스크립트] 콜라츠 추측 (0) | 2022.01.24 |