문자열 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 했을 때 빈 문자열이 담긴다는 걸 알고 있어서 막힘없이 해낼 수 있었다.