문제풀이 reverse
문제
reverse 함수에 정수인 숫자를 인자로 받습니다. 그 숫자를 뒤집어서 return해주세요.
x: 숫자 return: 뒤집어진 숫자를 반환!
예들 들어, x: 1234 return: 4321
x: -1234 return: -4321
x: 1230 return: 321
구현 코드
const reverse = x => {
const numToString = x.toString();
const result = [];
for(i=numToString.length-1; i>=0; i--){
if(numToString[i]=="-"){
result.unshift(numToString[0])
}else{
result.push(numToString[i])
}
}const sumResult = result.join('');
return Number(sumResult)
}
console.log(reverse(-98760543210))
코드 해부
-
매개변수 x 의 값을 문자열로 바꿔서 담을 numToString 변수 생성
-
결과 값을 담을 result 변수 생성
-
값을 거꾸로 담을 것이기 때문에 포문을 통해 numToString 배열의 값이 반대 순서로 하나씩 result 변수에 담기게 하도록 작성
-
그래서 if문의 조건으로 numToString의 요소들을 하나씩 순회하면서 "-" 가 있는지 찾아낸다
매개변수의 값이 음수라면 무조건 첫 string은 문자 일 것이다.
그러므로 numToString의 첫번째 요소(-) 를 unshift를 통해 배열의 앞으로 배치한다 -
앞의 조건이 맞지 않는다면 배열의 뒤로 numToString의 값을 하나하나 넣어준다.
-
배열의 요소들간의 , 를 없애기 위해서 join() 메소드를 사용해서 sumResult에 담는다.
-
sumResult의 값을 Number() 메소드를 통해 숫자로 바꾸고 리턴한다.
실수했던 점
-
처음에 filter()메소드를 통해 0 의 값을 지우려 했다. 하지만 인자값 중간에 0 이 포함된다면 그 0마저도 사라지기 때문에 마지막에 Number()메소드를 사용했다 마지막에 Number()메소드를 사용했을때는 앞에 0이 붙어도 자동으로 없어지는걸 확인할 수 있었다.
-
for문에서 i가 순회하는것을 정순으로 하려했다 하지만 이 방법은 다소 코드를 더 복잡하게 만들어서 반대순서로 순회하도록 구성해보았다
알게된 메소드
join()
const elements = ['fish', 'banana', 'melon'];
console.log(elements.join());
// expected output: "fish,banana,melon"
console.log(elements.join(''));
// expected output: "fishbananamelon"
console.log(elements.join('-'));
// expected output: "fish-banana-melon"
예시처럼 join() 메소드는 배열의 모든 요소를 연결해 하나의 문자열로 만든다
결과
Author And Source
이 문제에 관하여(문제풀이 reverse), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yshh0514/문제풀이-reverse저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)