[ 문제 ]
문제 자체는 이해하기가 아주 쉬운, 간단한 문제이다.
입력받은 문자열을 순서를 반대로 하여 반환하는 문제이다.
입출력 예시를 보면, "codestates"라는 문자열을 받으면 순서를 반대로 한 문자열인 "setatsedoc"를 반환한다.
[ 풀이 ]
나의 로직은 다음과 같다.
1/ 먼저 split 메소드를 이용하여 문자열 하나하나(띄어쓰기 포함)를 쪼개어 배열로 만든다.
2/ reverse 메소드를 이용하여 배열의 요소들을 반대로 만든다.
3/ 반복문을 이용하여 그 요소들을 문자열로 다 이어붙여서 반환한다.
function firstReverse(str) {
let arr = str.split(""); //변수를 선언하여 입력받은 str을 하나하나 쪼개어 배열로 만든 후, 할당한다.
arr.reverse(); //reverse()를 이용하여 배열의 요소들의 순서를 뒤집는다.
let result = ""
for(let i = 0; i < arr.length; i++){ //반복문을 이용하여 배열의 요소들을 다 이어붙인다.
result = result + arr[i]
}
return result; //요소들을 다 이어붙인 문자열을 반환한다.
}
여기서
첫째, 부끄럽지만 reverse라는 메소드를 처음 알았다. 이렇게 간편한 메소드가 있었다니..!
둘째, reverse메소드는 원본배열을 변형시킨다.
ex: arr.push, arr.pop(), arr.shift()..
[ 레퍼런스 ]
와.. 레퍼런스를 보고 감탄했다.
난 몇줄에 걸쳐서 코드를 작성했는데 이걸 단 3줄로 적다니!
반복문 대신 그냥 join 메서드를 사용하면 간단한 것을..
join 메서드도 이참에 다시 한번 복습하게 되었다.
join() 메서드는 배열의 모든 요소를 연결해 하나의 문자열로 만듭니다.
arr.join([separator])
**separator : 배열의 각 요소를 구분할 문자열을 지정합니다. 이 구분자는 필요한 경우 문자열로 변환됩니다. 생략하면 배열의 요소들이 쉼표로 구분됩니다. separator가 빈 문자열("")이면 모든 요소들이 사이에 아무 문자도 없이 연결됩니다.
const arr = ['바람', '비', '물'];
console.log(arr.join()); // 바람,비,물
console.log(arr.join('')); // 바람비물
console.log(arr.join('-')); // 바람-비-물
출처 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/join
'자료구조알고리즘 > 코드스테이츠 Coplit' 카테고리의 다른 글
07_convertListToObject (0) | 2022.02.12 |
---|---|
06_letterCapitalize (0) | 2022.02.09 |
04_firstCharacter (0) | 2022.02.07 |
03_powerOfTwo (0) | 2022.02.05 |
02_computeWhenDouble (0) | 2022.02.04 |