알고리즘문제

LeetCode 1528.Shuffle String

단점이없어지고싶은개발자 2021. 11. 21. 00:16
반응형

 

1528번 문제는 문자열의 index를 indices의 숫자의 인덱스로 바뀌어서 문자열이 나와야한다.

 

var restoreString = function(s, indices) {
    const resultArray = [];
    
    for (let i = 0; i < s.length; i++) {
        resultArray[i] = s[indices[i]];
    }
    
    console.log(resultArray);
    return resultArray.join("");
};

indices[i]로 s의 인덱스 때 새로운 배열에 넣어주면 되지 않을까 생각했다. 그리고 다 넣어주고 난 뒤,

join메소드를 사용해서 합쳐주기로 문자열로 넘겨주기로 했다.

 

하지만 계속 꼬였다. for 문이 0부터 돌아서 중간에 code 가 cdoe로 나와서 계속 케이스에서 실패했다.

 

그런데 만약 그 i의 인덱스 숫자와 indices안에 숫자와 같은 것을 찾아서 그것을 사용해서 나오게 한다면..?

 

indexOf라는 메서드를 이용했다.

 

var restoreString = function(s, indices) {
    const resultArray = [];
    
    for (let i = 0; i < s.length; i++) {
        resultArray[i] = s[indices.indexOf(i)];
    }
    
    return resultArray.join("");
};

저 부분을 생각하지 못해서 어제 오늘 고생했다.. 알고리즘은 조금씩 조금씩 늘어난다고 하는데 아직 멀은 것 같다..

반응형