[CodeKata] Day2. 문자열의 순서를 조건에 따라 바꾸기

Joah·2022년 6월 8일
0

자료구조

목록 보기
2/11
post-thumbnail

문제

첫 번째 접근

const reverse = x => {
  // 여기에 코드를 작성해주세요.
  const string = x.toString();
  const reverse = x.toString().split("").reverse().join("");
  console.log(reverse);
  const arr = string.split("");
  const firstEl = arr.shift();
  const result = arr.reverse().join("");
  const realResult = firstEl.concat(result);
  console.log(realResult);
  }

reverse(-1234);
reverse(1234);
reverse(1230);
reverse(-1234);
  • 일단 여기서 팀원들과 다른 방향으로 접근하기로 했다.
  • 여러 메소드를 덕지덕지 썼지만 인자로 받아지는 숫자를 문자열로 바꾸는 toString()
  • 빈 배열이 주어졌을 경우 문자열을 배열로 변환하며 각 글자들을 배열의 요소 하나하나로 반환하는 split()
  • 배열에 담긴 요소의 순서를 뒤집어 주는 reverse()
  • 다시 합쳐 문자열로 반환하는 join()
  • 배열의 가장 첫 번째 요소를 삭제하여 그 요소를 반환하는 shift()
  • 두 문자열을 합치는 concat()

📌이렇게 음수값(-)을 떼고 숫자들의 순서를 바꾸고 다시 마지막에 붙이는 접근
📌하지만 다음 문제인 0을 어떻게 없앨 것이냐?
📌만약 인자로 -1230이 들어오면 어떻게 할 것인가?

무한 조건문을 만들기 직전 다 지우고 다시 시작!


마지막 접근

초간단으로 현타...

const reverse = x => {
  // 여기에 코드를 작성해주세요.
    if(x < 0) {
      return Math.abs(x).toString().split("").reverse().join("") * -1
    }else{
      return x.toString().split("").reverse().join("") * 1
    }
  }

reverse(-1234);
reverse(1234);
reverse(1230);
reverse(-1234);
  • 일단 인자 값이 음수라면
    • 해당 값을 절대값으로 바꾸고 → 문자열로 바꾸고 → 하나하나 쪼개고 → 뒤집고 → 다시 붙이고 →💥-1을 곱하면💥
    • 절대값으로 만들고 -1을 곱하면 마이너스 부호를 붙였다 떼었다 할 필요가 전혀 없다....ㅜㅜ
    • 심지어 문자열 * 숫자는 숫자로 반환되기 때문에 1석2조... 다시 숫자로 반환할 필요도 없음
  • 인자 값이 양수라면
    • 굳이 절대값으로 변환하지 않아도 되고 위의 과정을 그대로 진행하다가 문자열을 숫자열로 변경하며 가장 간단하게 할 수 있는 방법은 * 1을 해주면 끝...ㅎㅎ
profile
Front-end Developer

0개의 댓글