문자로 구성된 배열을 input으로 전달하면, 문자를 뒤집어서 return 해주세요.
Input: ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
Input: ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]
const reverseString = s => {
return s.reverse()
};
console.log(reverseString(["H", "a", "n", "n", "a", "h"]))
인자로 받은 s값을 reverse()메서드로 뒤집어서 반환한다.
풀이 2
const reverseString = s => {
//for loop으로 0부터 s의 길이의 반까지만 돌린다 (중간에 기준값이 있어야하니까)
for (let i = 0; i < s.length/2; i++) {
//reverseS에 s[i] 값을 넣고
let reverseS = s[i];
//s[i]는 첫번째 인덱스와 마지막인덱스
s[i] = s[s.length-1-i];
//마지막 인덱스를 바꿔준다
s[s.length-1-i] = reverseS;
}
return s;
};
풀이 3
const reverseString = s => {
let temp;
let start = 0;
let end = s.length-1;
//배열의 기준점을 찾는다
while(end > Math.floor(s.length/2)){
temp = s[start];
s[start] = s[end];
s[end] = temp;
//끝부분에서 줄어들게끔
end--
//첫부분에서 늘어나게끔
start++
}
return s;
};
풀이 2와 3 둘다 반복문으로 기준값을 찾아 양 끝값을 바꿔주는 동일한 알고리즘이다.
데칼코마니를 생각해보면 이해하기가 좀 쉬울것 같다.