[Lv.1] K번째 수

Jihyun-Jeon·2022년 3월 21일
0

문제 : https://programmers.co.kr/learn/courses/30/lessons/42748

🔶내가 한 방법

// 방법1 - forEach, push 활용
function solution(array, commands) {

  const result = [];

  commands.forEach((el) => {
    result.push(array.slice(el[0] - 1, el[1]).sort((a, b) => a - b)[el[2] - 1]);
  });
  
  return result;
}

// 방법2 - reduce활용
function solution(array, commands) {
  
  const result = commands.reduce((acc, cur) => {
    const x = array.slice(cur[0] - 1, cur[1]).sort((a, b) => a - b)[cur[2] - 1];
    return [...acc, x];
  }, []);

  return result;
}

// 실행코드
console.log(
  solution(
    [1, 5, 2, 6, 3, 7, 4],
    [
      [2, 5, 3], // [2,3,5,6]
      [4, 4, 1], // [6]
      [1, 7, 3], // [1, 2, 3, 4, 5, 6, 7]
    ],
  ),
); // 결과 - [5, 6, 3]

🔶다른 사람 풀이

// 방법3 - 다른사람 풀이 map활용
function solution(array, commands) {
  const result = commands.map(
    (el) => array.slice(el[0] - 1, el[1]).sort((a, b) => a - b)[el[2] - 1],
  );
  return result;
}

🔶피드백

0개의 댓글