๋ฌธ์
Given an input string s, reverse the order of the words.
A word is defined as a sequence of non-space characters. The words in s will be separated by at least one space.
Return a string of the words in reverse order concatenated by a single space.
Note that s may contain leading or trailing spaces or multiple spaces between two words. The returned string should only have a single space separating the words. Do not include any extra spaces.
๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ง ๋ ๋ฌธ์์ด ์์ ๋จ์ด๋ฅผ ์ญ์์ผ๋ก ๋ฐํํ๋ค.
๋ฐํ๋ ๋ฌธ์์ด์๋ ํ๋์ ๊ณต๋ฐฑ๋ง ์์ด์ผ ํ๋ค.
ํ์ด
const reverseWords = function(s) {
// split์ผ๋ก ๋๋๋ค
// ๊ณต๋ฐฑ์ด ์๋ ๊ฒ๋ค๋ง ์ถ๋ฆฐ๋ค
// reverse()๋ก ๋ฐํํ๋ค
// join์ผ๋ก ๊ณต๋ฐฑ ๋ฃ๊ธฐ
return s
.split(' ')
.filter((word) => word.length > 0)
.reverse()
.join(' ');
};
๋ฐฐ์ด์ ๋ฉ์๋๋ค์ ์ต์ํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด ์ฌ๋ฌ ๋ฉ์๋๋ฅผ ์ด์ฉํด๋ณด๋ ค ํ๋ค.
์๊ฐํ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋ฌธ์์ด์ ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก, split์ ํตํด ๋ฐฐ์ด๋ก ์ชผ๊ฐ ๋ค.
- filter๋ฅผ ํตํด ๊ณต๋ฐฑ์ด ์๋ ๊ฒ๋ค๋ง ์ถ๋ ค๋ธ๋ค.
- reverse๋ก ์ถ๋ ค๋ธ ๋ฐฐ์ด์ ์ญ์์ผ๋ก ๋ง๋ ๋ค.
- join ๋ฉ์๋๋ก ๊ฐ๊ฐ์ ์์ ์ฌ์ด์ ๊ณต๋ฐฑ์ ์ถ๊ฐํด์ค๋ค.
์ด ๊ณผ์ ์ ํ์ด๋ O(n)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
๋ค๋ฅธ ํ์ด
function reverseWords(s) {
const ret = [];
let word = [];
for (let i = 0; i < s.length; ++i) {
if (s.charAt(i) === ' ') {
// We found the space, put word in front (if there is any)
word.length > 0 && ret.unshift(word.join(''));
// Reset the current word
word = [];
}
else {
// Add characters to the current word
word.push(s.charAt(i));
}
}
// If there is current word exists, add it in front
word.length > 0 && ret.unshift(word.join(''));
return ret.join(' ');
};
์ด ํ์ด๋ ๋ฌธ์์ด์์ ํ ๊ธ์์ฉ ๊ฐ์ ธ์์ ๊ณต๋ฐฑ์ด ์๋ ๊ฒฝ์ฐ word ๋ฐฐ์ด์ ๋ฌธ์์ด์ ๋ฃ์ด์ ๋จ์ด๋ฅผ ๋ง๋ค๊ณ ,
๊ณต๋ฐฑ์ผ ๊ฒฝ์ฐ ๋ฌธ์์ด ์์ ๊ณต๋ฐฑ์ ๋ฃ์ด์ค ๊ฒ์ ๊ฒฐ๊ณผ ๋ฐฐ์ด์ ๋ฃ๋ ๋ฐฉ์์ด๋ค.
์๋์์ ์๋ฌธ์ ๋ณผ ์ ์๋ค.
'๐ Algorithm > LeetCode' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] leetCode : Single Number (0) | 2022.05.26 |
---|---|
[JavaScript] leetCode : Implement strStr() (0) | 2022.05.12 |
[JavaScript] leetCode : Longest Common Prefix (0) | 2022.05.09 |
[JavaScript] leetCode : Linked List Cycle II (3) | 2022.05.03 |
[JavaScript] leetCode : Valid Mountain Array (3) | 2022.05.02 |
Comment