본문 바로가기
LeetCode

1528. Shuffle String

by 싼쵸 2022. 6. 8.
반응형

문제

스펠링을 indices에 숫자에 맞게 재배치해서 결과를 리턴한다.

 

내 현재 풀이

/**
 * @param {string} s
 * @param {number[]} indices
 * @return {string}
 */
var restoreString = function(s, indices) {
    let arr = []
    for(let i in indices){
        arr[indices[i]] = s[i]
    }
    return arr.join('')
};

처음에 생각한 방법 객체 형태로 만들어서 추출해보려 했데, 알파벳 e가 중복 때문에 원하는 방향으로 나오지 않았다.

그러고 나서 20분 정도 고민 후 새로운 배열에 indices안에 숫자를 그대로 이용해 배열의 순서 값으로 넣고 s의 요소들을 인덱스 번호대로 기입했다.

내 예전 풀이

/**
 * @param {string} s
 * @param {number[]} indices
 * @return {string}
 */
var restoreString = function(s, indices) {
    let str = [...s];
    let res = []
    for(let i =0; i < s.length; i++){
        res[indices[i]] = str[i]
        console.log(res)
    }
    
    return res.join('');
};

 

접근 방법은 지금이나 예전 풀이나 같다. 다만 예전 풀이는 불필요한 요소들 이 존재하네 ㅋㅋㅋ저때는 분명 최선임을 확신한다.

다른 사람 풀이

var restoreString = function(s, indices) {
    var len = indices.length;
    var str = new Array(len);     
    for(let i=0; i<len;i++){
        str[indices[i]] = s[i];
    }
    return str.join("");  
};

이 풀이가 사실 내 풀이와 크게 다르지 않은 데 효율이 조금 더 높게 나왔는데, 참 신기하다. 아직 내가 모르는 영역이다ㅠㅠ

 

 

 

반응형

댓글