[codeKata_12] 배열을 뒤집어 반환(feat.새로운 배열을 선언금지!)
1. 문제
새로운 배열을 선언하면 안 됩니다.
인자로 받은 배열을 수정해서 만들어주세요.
Input: ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
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"]
2. 나의 코드
새로운 배열을 선언하면 안 됩니다.
인자로 받은 배열을 수정해서 만들어주세요.
Input: ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
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"]
왜이렇게 쉽지하고 보니 새로운 배열을 선언하지 말라는 조건이 보였다. 당연하게도 빈배열을 선언해서 반복문을 거꾸로 돌려 push하려고 했는데 말이다. 그래 이렇게 쉬울리가 없지, 하며 다시 도전. 배열안에서 원소를 이동시키려면 뭔가 기준점이 필요할 것 같아서 length의 반으로 잡아주었고, 그 다음 이것들을 어떻게 사용하면 좋일지에서 막혀있었다. slice를 사용해서 원소를 쪼개 이동해 보려고 했는데, 사실 프로젝트 레이아웃이 머릿속에서 떠나질 않아 깊은 고민을 하지 못하고 여기서 정답을 찾아보았다. 이 부분은 진짜 반성...! 내일 부터 11시까지는 무슨일이 있어도 코드카타 시간으로 할당해놓자. (급 반성의 시간,,)
const s = ["h","e","l","l","o"]
const reverseString = s => {
for (let i = 0; i < s.length/2 ; i++){
const firstHalf = s.slice(s[i],s.length/2);
const secondHalf = s.slice(s.length/2,s.length[i]);
//...
}
}
reverseString(s)
3. 정답 코드
정답 코드를 보자 조금더 해볼 걸 하는 생각밖에는 ㅠ^ㅠ
나는 i값을 어디로 옮겨야 하나 고민했는데, length를 이용하여 i번째 값을 length-1-i로 할당해주는 것이 키포인트였던 것 같다.
const reverseString = s => {
for (let i = 0; i < s.length/2; i++) {
let reverseS = s[i];
s[i] = s[s.length-1-i];
s[s.length-1-i] = reverseS;
}
return s;
};
Author And Source
이 문제에 관하여([codeKata_12] 배열을 뒤집어 반환(feat.새로운 배열을 선언금지!)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dev_cecy/codeKata12-배열을-뒤집어-반환feat.새로운-배열을-선언하지-않고저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)