본문 바로가기
LeetCode

1859. Sorting the Sentence

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

문제

글자 맨 끝에 있는 숫자대로 순서를 재배치해서 리턴하는 문제다. 이상하게 이 문제 왠지 풀이했던 기억이 안 나는데 한번 접근해보자!!

 

내 현재 풀이

/**
 * @param {string} s
 * @return {string}
 */
var sortSentence = function(s) {
  let arr = s.split(' ');
    let newArr = [];
    for(let end of arr) newArr[end[end.length-1]-1]=end
   
arr = newArr.map(str=> str.slice(0,-1));
    return arr.join(' ');
        
};

오랜만에 풀었던 문제중에 꽤나 고전하면서 다시 풀이했다. 고민했던 부분은 for문에 처음에 slice를 사용해서 풀이했는 데, 많은 케이스 중에서 통과하지 못하는 케이스가 발견돼서 인덱스 번호를 부여해서 직접 넣은 방법으로 해결했다.

내 예전 풀이

/**
 * @param {string} s
 * @return {string}
 */
var sortSentence = function(s) {
    let newArr = [];
    let arr = s.split(' ');
    for(let i = 0 ; i < arr.length; i++){
        let num = Number(arr[i].slice(arr[i].length-1));
        newArr[num-1] = arr[i].slice(0,-1)
    }
    return newArr.join(' ')
};

예전풀이와 현재 풀이를 보면 내가 생각하는 부분이니가 풀이는 크게 달라지지는 않았지만, 시간이나 코드의 간결함을 확실히 올라간 게 이번에도 느껴진다.

다른 사람 풀이

const sortSentence = function(s) {
   return s.split(' ')
       .sort((a,b) => a[a.length-1] - b[b.length-1])
       .map((word) => word.slice(0, word.length-1))
       .join(' ');
};

나도 sort를 적용해보려고 했는데 실패했는데, 이렇게 사용하는 구나 깨닫고 간다.

 이래서 다른사람의 풀이를 보는 것도 중요하긴 하다.

반응형

'LeetCode' 카테고리의 다른 글

1791. Find Center of Star Graph  (0) 2022.06.13
1773. Count Items Matching a Rule  (0) 2022.06.13
1221. Split a String in Balanced Strings  (0) 2022.06.10
1389. Create Target Array in the Given Order  (0) 2022.06.09
1528. Shuffle String  (0) 2022.06.08

댓글