[JS] 달리기 경주

GiSeong Lee·2023년 4월 11일
0

코드

function solution(players, callings) {
    let map1 = {};
    players.map((e,idx)=>map1[e] = idx)
    for(let i=0; i<callings.length; i++){
        const overtaker = callings[i]
        const overtakerIdx = map1[overtaker]
        const caught = players[overtakerIdx-1]
        
        players[overtakerIdx - 1] = overtaker
        players[overtakerIdx] = caught
        
        map1[overtaker] = overtakerIdx - 1
        map1[caught] = overtakerIdx
        
    }
    
    return players;
}

처음엔 배열로 풀었다가 테스트 케이스에서 시간초과로 실패했다. 시간초과라서 어떻게 해야되나 찾아보다가 map이나 object로 풀면 된다 그래서 바로 돌려버렸다. object는 그렇게 인턴할때 써놓고는 그새 까먹었다. 시간초과때는 배열말고 오브젝트를 써보도록 하자.

profile
프론트가 하고싶어요

0개의 댓글