ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [TIL]Day 22. Code Kata 내용 정리(201006)
    IT 지식 2020. 10. 6. 11:25
    728x90

    이번 포스팅은 Code Kate에 대한 내용을 정리해보도록 하겠습니다.

     

    * 문제

    reverse 함수에 정수인 숫자를 인자로 받습니다.

    그 숫자를 뒤집어서 return해주세요.

     

    x: 숫자

    return: 뒤집어진 숫자를 반환!

     

    예를 들어,

    x: 1234 return: 4321

    x: -1234 return: -4321

    x: 1230 return: 321

     

    더보기

    해결책: 

     

    Number형태의 자료형은 그 단일 문자를 split 할 수 없기 때문에, 우선 각각의 숫자들을 구분하기 위해 string 자료형으로 바꿔줘야 합니다. 

     

    그 후 string화 된 자료형을 split 메소드를 이용하여 각각의 구분된 배열로 바꾼 후 ->

    reverse 메소드를 이용하여 배열의 순서를 바꾸고 ->

    join 메소드를 이용하여 각각의 문자열을 하나로 합쳐줍니다. ->

    마지막으로 문자열 형태로 되어 있는 숫자들을 Number 메소드를 이용하여 숫자로 변환합니다.

     

    *주의! 

    음수의 경우에는 문자열로 변환했을 때, - 부호를 포함한 채로 Number로 변환하려 한다면 배열의 맨 마지막에 - 부호가 존재하기 때문에 해당 문자열은 Number가 될 수 없습니다(NaN이 return 됩니다). 따라서 음수를 양수로 바꿔준 후에 같은 방법을 진행하고 마지막에 다시 음수로 바꿔주는 과정이 필요합니다.

     

    const reverse = x => {
      if (x > 0) {
        x = x + "";
        return Number(x.split("").reverse().join(""));
      } 
      x = -x
      x = x + ""
      let reverseNumber =  Number(x.split("").reverse().join(""));
      return -reverseNumber;
    }
    
    console.log(reverse(1234)); //return 4321
    console.log(reverse(-1234)); //return -4321
    
    더보기

     

     

    *split 메소드 주의사항(from MDN 문서): 구분자로 빈 문자열("")을 제공하면, 사용자가 인식하는 문자 하나(grapheme cluster) 또는 유니코드 문자(코드포인트) 하나씩으로 나누는 것이 아니라, UTF-16 코드유닛으로 나누게 되며 써로게이트 페어surrogate pair가 망가질 수 있습니다. 스택 오버플로우의 How do you get a string to a character array in JavaScript? 질문도 참고해 보세요.

    728x90

    댓글

Designed by Tistory.