Reverse Words in a String

zoovely·2024년 5월 5일
0
post-thumbnail

💬 문제

[문제 링크]

문자열 s의 띄어쓰기로 분리된 단어를 역순으로 출력

Input: s = "a good   example"
Output: "example good a"

✍️ 나의 풀이

/**
 * @param {string} s
 * @return {string}
 */
var reverseWords = function(s) {
    const strings = s.split(' ');
    let res = '';
    for (let i = strings.length - 1; i >= 0; i--) {
        if (strings[i] !== '')
            res += strings[i] + ' ';
    }
    return res.trim();
};

띄어쓰기 기준으로 split 해서 배열에 담아둔 다음
역으로 순회하면서 하나씩 문자열에 추가하고 띄어쓰기도 넣어주기
마지막 단어에도 띄어쓰기가 붙으므로 마지막에 trim해서 반환

📌 결과

Accepted
Runtime 45ms (Beats 94.35%)
Memory 50.52MB (Beats 73.36%)

📚 러닝 포인트

엄청 빨리 풀고 또 결과도 좋게 나와서 크게 되짚어 볼건 없지만, 각 단어 마다 띄어쓰기를 붙여주는 것에 대해서 마지막 단어는 어떻게 할까 하다가 i === 0일 때만 띄어쓰기를 안붙이기에는 그게 공백일 수도 있어서 일단 다 붙이고 마지막에 trim하는 것으로 해결했다. 물론 처음부터 trim을 하고 split을 하면 조건을 사용해서 마지막 띄어쓰기를 안 붙일 수도 있다. 그냥 나는 for 문 안에 조건문이 간단했으면 좋겠다고 생각했다. 저번에 비슷한 문제를 풀어서 그런지 연속 공백을 split 했을 때 빈 문자열이 담긴다는 걸 알고 있어서 막힘없이 해낼 수 있었다.

profile
나도 할 수 있을까?

0개의 댓글