2119. A Number After a Double Reversal

Kimmy·2022년 9월 9일
0

CODING TEST

목록 보기
9/9

[ reverse ] 에 관련된 알고리즘 영상을 봤다.
본 후 관련된 문제를 풀려고 코테를 열었다.

이건 reverse를 두번 시키는 코딩 문제인건데 머리를 탁치는 순간이 하나 있었다.
진짜 문제 그대로 나는 두번을 reverse 시켜버림..

var isSameAfterReversals = function(num) {
    let reversed1 = 0;
    let reversed2 = 0;
    let remain = Math.abs(num);
    
    
      //예외처리
      if(num === 0) return null;
      
     while(remain !== 0){
      reversed1 *= 10;
      reversed1 += remain % 10;
      remain = Math.floor(remain/10);
    }
    
    remain = Math.abs(reversed1);
  
    while(remain !== 0) {
      reversed2 *= 10;
      reversed2 += remain %10;
      remain = Math.floor(remain/10);
    }
    
   if(reversed2 === num) return true;
    else return false;
    
  
  };

그렇다고 이게 틀린건 아니였음.

근데....
remain = x / 10
reverse result = x % 10
이라는 알고리즘을 알고 나면 이것은.. 그냥 단순히 끝자리가 0이면 당연히 reverse 값이 return 값이랑 같지않으니 false 를 해야한다는걸 당!연!히! 알테다.

그래서 이 코드는 이렇게 변경 가능

var isSameAfterReversals = function(num) {
    if(num == 0)    return true;
    if(num % 10 == 0)   return false;
    return true;
};

회사에서 면접을 볼 시엔 두가지를 다 제시하는 것이 좋을 수도 있겠다.

profile
Frond-End Developer

0개의 댓글