TIL_230405-프로그래머스 - 스택,큐/정렬

정윤숙·2023년 4월 5일
0

TIL

목록 보기
144/192
post-thumbnail

📒 오늘의 공부

1. 프로그래머스 - 스택,큐

Lv1. 같은 숫자는 싦어

나의 풀이

const solution = (arr) => {
  let newArr = [];
  newArr.push(arr[0]);
  for (let i = 0, j = 1; j < arr.length; i++, j++) {
    if (arr[i] !== arr[j]) {
      newArr.push(arr[j]);
    }
  }
  return newArr;
};

다른 풀이

function solution(arr)
{
    return arr.filter((val,index) => val != arr[index+1]);
}
  • filter 생각만하고 적용하지 못 했음

알게 된 것

indexOf(): 특정 문자열 위치 찾기

const arr = [1, 3, 0];
console.log(arr.indexOf(3)); // 1

2. 프로그래머스 - 정렬

Lv1. 다른 사람의 풀이

나의 풀이

const solution = (array, commands) => {
  let answer = [];
  for (let i = 0; i < commands.length; i++) {
    newArray = array
      .slice(commands[i][0] - 1, commands[i][1])
      .sort((a, b) => a - b);
    answer.push(newArray[commands[i][2] - 1]);
  }

  return answer;
};

다른 풀이

function solution(array, commands) {
    let answer = [];
    for(let i = 0; i < commands.length; i++){
      let eachCommand = commands[i]
      let slice = array.slice(eachCommand[0] - 1, eachCommand[1])
      answer.push(slice.sort((a, b) => a - b)[eachCommand[2] - 1])
    }

    return answer;
}
  • 내가 한 것과 가장 유사한데 let eachCommand = commands[i] 이렇게 분리하니 더 깔끔!
function solution(array, commands) {
    return commands.map(v => {
        return array.slice(v[0] - 1, v[1]).sort((a, b) => a - b).slice(v[2] - 1, v[2])[0];
    });
}
  • map을 사용!!
profile
프론트엔드 개발자

0개의 댓글