문자열 뒤집기(String Reversal)

강명모(codingBear)·2022년 2월 21일
0

algorithm_JavaScript

목록 보기
5/36
post-thumbnail

References

아래 링크의 강의 중 Section 3. String Reversal의 내용을 추려 이번 글을 작성하였습니다.
The Coding Interview Bootcamp: Algorithms + Data Structures on Udemy


Solution 1. my solution

function reverse(str) {
  let arr = [];
  for (let i = str.length - 1; i >= 0; --i) {
    arr.push(str[i]);
    // i = 3 2 1 0
  }
  // arr = ["d", "c", "b", "a"];
  return arr.join("");
}
console.log(reverse("abcd"));
  1. 결과값을 담을 빈 배열 arr선언
  2. 문자열 str을 맨 끝에서부터 탐색하며 마지막 문자부터 차례대로 arrpush하는 for loop 작성
  3. 배열 arrjoin()로써 하나의 문자열로 만든 다음 결과값을 return

Solution 2. with reverse()

function reverse(str) {
  return str.split("").reverse().join("");
  // str.split = ["a", "b", "c", "d"]
  // str.split.reverse() = ["d", "c", "b", "a"]
}
console.log(reverse("abcd"));
  1. 문자열 strsplit()로 쪼개서 배열로 만들기
  2. reverse()로써 앞서 쪼갠 배열 역순 정렬
  3. join()으로 배열을 하나의 문자열로 만들고 결과값 반환

reverse()_MDN_Link


Solution 3. with for loop

function reverse(str) {
  let reversed = "";
  for (let i = 0; i < str.length; ++i) {
    reversed = str[i] + reversed;
    // reversed = "a"
    // reversed = "ba"
    // reversed = "cba"
    // reversed = "dcba"
  }
  return reversed;
}
console.log(reverse("abcd"));
function reverse(str) {
  let reversed = "";
  for (let character of str) {
    reversed = character + reversed;
    // reversed = "a"
    // reversed = "ba"
    // reversed = "cba"
    // reversed = "dcba"
  }
  return reversed;
}
console.log(reverse("abcd"));
  1. 결과값을 담을 빈 변수 reversed 선언
  2. for loop을 통해 문자열 str을 첫째값부터 탐색하며 index number 오름차순으로 reversed에 붙여넣기
  3. 결과값 반환

for...of_MDN_Link


Solution 4. with reduce()

function reverse(str) {
  return str.split("").reduce((rev, char) => char + rev, "");
}
console.log(reverse("abcd"));
  1. 문자열 strsplit()으로 쪼개서 배열로 만들기
  2. reduce()method로 str를 탐색하며 현재값 char를 이전 값 rev 앞에 차례대로 더해간다.
  3. 결과값 반환.

reduce()

reduce()_MDN_Link

array.reduce((previousValue, currentValue, currentIndex, array) => {}, initailValue);

reduce()는 총 4가지 argument를 받는다.

  1. previousValue: initialValue가 정의되어 있으면 initialValue를 첫 번째값으로 호출하고 아니라면 array[0]을 호출한다.
  2. currentValue: initialValue가 정의되어 있으면 array[0]을 호출하고 아니라면 array[1]을 호출한다
  3. currentIndex: array에서 currentValueindex. initialValue가 정의되어 있으면 0, 아니라면 1을 첫 번째값으로 호출한다.
  4. array: 탐색을 실행할 배열.

initialValueOptional value임.

profile
front-end 분야를 중점으로 공부 중!🐣

0개의 댓글