Code Kata #2 Reverse
9684 ワード
💻Reverse
パラメータとして整数をreverse関数として受信します.その数字をひっくり返して返してください.
例えば、x:1234 return:4321
x: -1234 return: -4321
x: 1230 return: 321
最初の解答
const reverse = x => {
let str = x.toString()
const arr = str.split('')
const newArr = arr.reverse()
let newStr = newArr.join('')
return Math.sign(x)*newStr
//return parseInt(x.toString().split('').reverse().join('')) * Math.sign(x);
}
考えが単純だ.
問題の要件は「整数数字」「逆さ」の2つで、数字をひっくり返す方法が見つかった.
頭の中で一番簡単な方法は let str = x.toString() // 배열로 변환하기 위해 문자열 변환
const arr = str.split('') //배열로 변환
const newArr = arr.reverse() // 배열 메소드 활용하여 거꾸로 뒤집기
let newStr = newArr.join('') // 뒤집은 배열을 다시 문자열로 합치기
return Math.sign(x) // javascipt가 동적 타입 언어인 것을 활용하여 그냥 문자열에 정수 곱해버리기
はい.
問題を迅速に解決した後,変数過多で再構成することにした.const reverse = x => {
return parseInt(x.toString().split('').reverse().join('')) * Math.sign(x);
}
カバーしていましたが、残念な点も多く、理由はバリエーションが多すぎるからです.정수->문자열->배열->문자열->정수....
これはコード性能の低下の原因に違いないと思います.別の方法を決める.
💡第二の解釈
const reverse = x => {
let r = 0
let q = 0
while(x){
r = x%10
q = (q*10) + r
x = parseInt(x/10)
}return q
}
パラメータとして整数が得られた以上、整数で解決したい.const reverse = x => {
let r = 0 // 나머지를 담을 빈 정수 r을 생성
let q = 0 // 답을 담을 빈 정수 q를 생성
while(x){
r = x%10 // 인자로 받은 x를 10으로 나눈 후 나머지를 r에 저장 (1의 자리 수 확보)
q = (q*10) + r // 반복문이 돌며 수가 계속 채워져야 함으로 확보한 나머지에 10을 곱하여 10의 자리로 보낸 후 새로운 나머지를 더하기
x = parseInt(x/10) // 이 식은 x의 몫이 0이 될때까지 진행
}return q
}💡
人字x
は浄水器なので、すぐに余剰とシェアを利用しようという考えが浮かびました.
しかし、いつまで実行しますか?正しい部分で塞がれています.
通常はfor문
を回転させるときはi
の値です.アレイの繰り返し文をよく回転させるからです.
反復文に純粋な真髄を用いた概念は頭に入らなかった.
この部分を考えているうちに、初めてJSを勉強したときに使ったwhile문
を本当に思い出しました.
while文を使うと、何回繰り返すかわからなくても、繰り返し文を回すことができます. x = x/10 // 처음엔 단순히 x값을 계속 10으로 나누면 되겠지 했는데, 0으로 딱 떨어지지 않아서그런지 infinity가 출력이 되었다.
x = parseInt(x/10) // parseInt를 사용하여 0근사치는 0으로 출력되게 만들어 주었다.
Reference
この問題について(Code Kata #2 Reverse), 我々は、より多くの情報をここで見つけました
https://velog.io/@kich555/Code-Kata-2-twoSum
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
const reverse = x => {
let str = x.toString()
const arr = str.split('')
const newArr = arr.reverse()
let newStr = newArr.join('')
return Math.sign(x)*newStr
//return parseInt(x.toString().split('').reverse().join('')) * Math.sign(x);
}
let str = x.toString() // 배열로 변환하기 위해 문자열 변환
const arr = str.split('') //배열로 변환
const newArr = arr.reverse() // 배열 메소드 활용하여 거꾸로 뒤집기
let newStr = newArr.join('') // 뒤집은 배열을 다시 문자열로 합치기
return Math.sign(x) // javascipt가 동적 타입 언어인 것을 활용하여 그냥 문자열에 정수 곱해버리기
const reverse = x => {
return parseInt(x.toString().split('').reverse().join('')) * Math.sign(x);
}
정수->문자열->배열->문자열->정수....
const reverse = x => {
let r = 0
let q = 0
while(x){
r = x%10
q = (q*10) + r
x = parseInt(x/10)
}return q
}
const reverse = x => {
let r = 0 // 나머지를 담을 빈 정수 r을 생성
let q = 0 // 답을 담을 빈 정수 q를 생성
while(x){
r = x%10 // 인자로 받은 x를 10으로 나눈 후 나머지를 r에 저장 (1의 자리 수 확보)
q = (q*10) + r // 반복문이 돌며 수가 계속 채워져야 함으로 확보한 나머지에 10을 곱하여 10의 자리로 보낸 후 새로운 나머지를 더하기
x = parseInt(x/10) // 이 식은 x의 몫이 0이 될때까지 진행
}return q
}💡
x = x/10 // 처음엔 단순히 x값을 계속 10으로 나누면 되겠지 했는데, 0으로 딱 떨어지지 않아서그런지 infinity가 출력이 되었다.
x = parseInt(x/10) // parseInt를 사용하여 0근사치는 0으로 출력되게 만들어 주었다.
Reference
この問題について(Code Kata #2 Reverse), 我々は、より多くの情報をここで見つけました https://velog.io/@kich555/Code-Kata-2-twoSumテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol