TIL 25) 코드 카타 정수 reverse

이명진·2021년 3월 30일
0

코드카타

목록 보기
1/69

코드 카타 2일차.
코드 카타는 알고리즘 문제를 풀면서 컴퓨팅 사고와 문제 해결 역량을 기르는 데 도움이 된다. 또한 코딩 테스트를 풀기 위한 역량도 기를 수 있다.

코드 카타의 기능

코딩 테스트는 문제를 이해한게 맞는지의 이해력 능력과 문제 해결 능력을 파악한다. 코딩 테스트는 Driver와 Navigator 로 나뉘어서 pair programming을 진행하는데 Driver는 직접 코드를 작성하며 코드를 손에 익히며 코드를 사용할수 있고 Navigator는 설계자의 입장으로 정확한 워딩을 사용하여 코드를 설계 하고 설명할수 있는 역량을 기를수 있다.

코드 카타 문제

이번 코드 가타는 2일차로 정수를 인자로 받아 숫자를 뒤집어서 return해주는 알고리즘을 설계 하게 되었다.

ex) x: 1234 return :4321
x: -1234 return : -4321
x: 1230 return : 321

이번 문제는 나에게 약간 난이도가 있는 문제였다. 다행히 pair programming으로 진행되어서 문제에 접근할수 있었고 도움을 많이 받아 문제를 해결할수 있었다.

문제 해결을 위해 어떻게 접근할수 있을까 ? 어떤 함수를 사용해야 할까 ??

답안

답은 여러 방향으로 문제를 해결할수 있다. 그중 가장 효율적이라고 생각하고 pari programming으로 진행한 해답을 작성해 보았다.

const reverse = x => {
  const reverseNum = parseInt(x.toString().split('').reverse().join(''))
  return x<0 ? reverseNum*(-1) : reverseNum
  
};

오랜 고민과 반대로 결과는 간단하게 두줄로 작성되었다. 아직 함수를 자유자재로 활용하지 못해서 다시한버 함수를 정리해보는 시간을 가진다.

문제의 해설

reverse 함수를 생성하였고 화살표 함수를 이용하였다.
reverseNum을 선언해주었다.
x 인자를 toString()을 이용하여 string으로 바꿔준다.
split('') 을 이용하여 한단어씩 분리하여 배열로 변경해준다.
reverse()를 사용하여 단어의 배치를 뒤집어준다. 배열에서만 사용이가능하다.
join('')을 이용하여 단어들을 다시 합쳐준다.
parseInt()를 활용하여 정수값으로 표현해준다

함수 공부

toString(): 문자열을 반환한다.

split('') : 메서드는 String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눕니다.

반환값: 주어진 문자열을 separator마다 끊은 부분 문자열을 담은 Array.

reverse() : 메서드는 배열의 순서를 반전합니다. 첫 번째 요소는 마지막 요소가 되며 마지막 요소는 첫 번째 요소가 됩니다.

반환값 : 순서가 반전된 배열.

join('') : Array.prototype.join()
join() 메서드는 배열의 모든 요소를 연결해 하나의 문자열로 만듭니다.
반환값 : 문자열

parseInt() : Number.parseInt()
메서드는 문자열을 분석하고 특정 진수를 사용한 정수로 변환해 반환합니다.

profile
프론트엔드 개발자 초보에서 고수까지!

0개의 댓글