210831 배열의 앞뒤 뒤집기

문제

문자로 구성된 배열을 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"]

문제이해

배열의 전체 길이 중에서 앞부분에 있는거를 뒤에 옮기고 뒤에 있는거를 앞으로 옮기면 된다

1, 2, 3, 4, 5
1 ↔ 5
2 ↔ 4
3 ↔ 3 (사실상 그대로이기 때문에 굳이 바꾸지 않는다)

정답

const reverseString = s => {
    for (let i = 0; i < s.length / 2; i++) {
        let frontE = s[i];
        s[i] = s[s.length - 1 - i];
        s[s.length - 1 - i] = frontE;
    }
    return s;
};

코드해설

  1. 배열의 처음부터 중간까지만 반복하도록 for문 적용
for (let i = 0; i < s.length/2; i++) {
}
  1. 앞자리에 있는 요소를 frontE라는 변수에 담아주기
let frontE = s[i];
  1. 뒤에 있는 요소를 앞 요소에 담아주기
 s[i] = s[s.length-1-i];
  1. 원래 앞에 있던 요소를 뒤 요소에 담아주기
s[s.length-1-i] = frontE;

더 간단한 정답

return s.reverse();

좋은 웹페이지 즐겨찾기