728x90
반응형
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"));
- 결과값을 담을 빈 배열
arr
선언 - 문자열
str
을 맨 끝에서부터 탐색하며 마지막 문자부터 차례대로arr
에push
하는for loop
작성 - 배열
arr
를join()
로써 하나의 문자열로 만든 다음 결과값을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"));
- 문자열
str
을split()
로 쪼개서 배열로 만들기 reverse()
로써 앞서 쪼갠 배열 역순 정렬join()
으로 배열을 하나의 문자열로 만들고 결과값 반환
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"));
- 결과값을 담을 빈 변수
reversed
선언 for loop
을 통해 문자열str
을 첫째값부터 탐색하며index number
오름차순으로reversed
에 붙여넣기- 결과값 반환
Solution 4. with reduce()
function reverse(str) {
return str.split("").reduce((rev, char) => char + rev, "");
}
console.log(reverse("abcd"));
- 문자열
str
을split()
으로 쪼개서 배열로 만들기 reduce()
method로str
를 탐색하며 현재값char
를 이전 값rev
앞에 차례대로 더해간다.- 결과값 반환.
reduce()
array.reduce((previousValue, currentValue, currentIndex, array) => {}, initailValue);
reduce()
는 총 4가지 argument
를 받는다.
previousValue
:initialValue
가 정의되어 있으면initialValue
를 첫 번째값으로 호출하고 아니라면array[0]
을 호출한다.currentValue
:initialValue
가 정의되어 있으면array[0]
을 호출하고 아니라면array[1]
을 호출한다currentIndex
:array
에서currentValue
의index
.initialValue
가 정의되어 있으면0
, 아니라면1
을 첫 번째값으로 호출한다.array
: 탐색을 실행할 배열.
initialValue
는 Optional value
임.
728x90
반응형
'👩💻 Programming > Coding Test 문제 풀이' 카테고리의 다른 글
정수 뒤집기(Integer Reversal) (0) | 2022.04.04 |
---|---|
회문(Palindromes) (0) | 2022.04.04 |
이진 탐색(Binary Search) (0) | 2022.04.04 |
[BaekJoon] 2588번 곱셈_JavaScript (0) | 2022.04.01 |
[BaekJoon] 10430번 나머지_JavaScript (0) | 2022.04.01 |
댓글