본문 바로가기
Algorithm/프로그래머스(Programmers)

[ 자바스크립트(JavaScript) ] 프로그래머스 level1 - k번째 수

by YWTechIT 2021. 7. 22.
728x90

📍 프로그래머스 1단계 - K번째 수

프로그래머스 1단계 - K번째 수


⚡️ 나의 풀이

JS로 처음 풀어본 문제인데, 나는 단순 for문으로 풀었지만 for ~ of로 풀면 조금 더 깔끔하게 풀 수 있다. 또 slicestart, end 인덱스를 잘 계산해야 놓치지 않는다. slice에서 end는 포함하지 않는다는 것을 잊지 말자.

 

추가로 sortelement문자열로 취급하여 정렬하기 때문에, 유니코드 순서대로 정렬된다. 따라서 숫자를 정렬하고 싶다면 파라미터를 두 개를 넘겨주고 오름차순은 a-b, 내림차순은 b-a 하는 과정을 거치자.

 

// for 
function solution(arr, commands) {
  const answer = [];

  for (let i= 0; i < i.commands.length; i++) {
    let command = commands[i];
    let newArr = arr.slice(command[0] - 1, command[1]);
    newArr.sort((a, b) => a - b);
    answer.push(newArr[command[2] - 1]);
  }
  return answer;
}

 

// for ~ of
function solution(arr, commands) {
  const answer = [];

  for (let command of commands) {
    let newArr = arr.slice(command[0] - 1, command[1]);
    newArr.sort((a, b) => a - b);
    answer.push(newArr[command[2] - 1]);
  }
  return answer;
}

 

// map함수
function solution(arr, commands) {
  const answer = [];

  commands.map((command) => {
    let newArr = arr.slice(command[0] - 1, command[1]);
    newArr.sort((a, b) => a - b);
    answer.push(newArr[command[2] - 1]);
  });

  return answer;
}
반응형

댓글