본문 바로가기

자료구조알고리즘/코드스테이츠 Coplit

05_firstReverse

[ 문제 ]

문제 자체는 이해하기가 아주 쉬운, 간단한 문제이다.

입력받은 문자열을 순서를 반대로 하여 반환하는 문제이다.

입출력 예시를 보면, "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