Coding Test/항해99 - 코테 스터디 2기
99클럽 코테 스터디 4일차 TIL(5월 24일) + 자료구조 Heap
holajjm
2024. 5. 24. 16:21
문제 링크 : https://leetcode.com/problems/minimum-number-game/
오늘의 문제는 보자마자 스택과 큐를 떠올렸지만 애매한 느낌을 받았었다.
자료구조에 대해서 잘 모르다보니 문제의 토픽을 확인해보니 힙 자료구조를 사용해야 한다고 알려주었다.
하지만 힙 자료구조에 대해서 모르기 때문에 알고 있는 개념을 이용해서 구현해 보았다.
1. 가장 작은 요소를 순서대로 제거하여 새로운 배열에 넣는 작업이 필요하므로 정렬하는 코드를 처음에 작성하였다.
2. 정렬한 배열의 가장 앞(최소 요소)에서부터 2개씩 끊어서 제거한 후 새로운 배열에 push하는 작업을 거쳤다.
문제를 풀고 돌이켜보니 반복문 내에서 slice와 sort method를 사용할 필요 없이 arr 배열에 i,i+1의 인덱스로 뒤집어서 넣으면 되는 간단한 방법이 있다는 것을 깨달았다.
/**
* @param {number[]} nums
* @return {number[]}
*/
var numberGame = function(nums) {
const arr = [];
const newNums = nums.sort((a,b) => a - b);
for(let i = 0; i < nums.length; i += 2){
arr.push(newNums.slice(i,i+2).sort((a,b) => b-a))
}
return arr.flat()
};