Coding Test/항해99 - 코테 스터디 2기

99클럽 코테 스터디 32일차 TIL(6월 21일) + 알고리즘 정렬(Sort)

holajjm 2024. 6. 21. 11:38

[문제 링크]

https://leetcode.com/problems/find-target-indices-after-sorting-array/

 

[문제 사고]

주어진 배열을 정렬 후 목표값과 일치하는 요소의 인덱스를 넣은 배열을 반환한다.

 

[문제 해결]

1. nums 배열을 오름차순으로 정렬한 새로운 배열 newNums를 생성한다.
2. 정답을 넣어 반환할 빈 배열 answer을 생성한다.
3. newNums 배열을 map method로 순회하며 요소가 target 값과 일치하면 answer 배열에 push 한다.
4. 정답이 담긴 answer 배열을 반환한다.

 

[작성 코드]

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
var targetIndices = function(nums, target) {
    const newNums = nums.sort((a,b) => a - b);
    const answer = [];
    newNums.map((e,i) => {if(e === target) answer.push(i)});
    return answer
};

 

[문제 회고]

위의 방식대로 빠른 시간 내에 해결하였지만 메모리 효율과 시간의 최적화에 너무 강박이 씌인 것인지 어떻게든 두 가지 모두 줄여보려고 노력해보았지만 실패하였다. 배열 안의 특정 요소를 즉시 삭제하는 방법이 없기 때문에 최선의 방법으로 코드를 구현한 것 같다.