CodeKata #2

이상철·2021년 9월 18일
0

CodeKata

목록 보기
2/3
post-thumbnail

알고리즘이 너무너무 어렵다..
이해가 안가는 건 아직 블로그에 쓸 수 없기에
이해한 문제만 풀어보도록 하겠습니다.

문제

숫자인 num을 인자로 넘겨주면, 뒤집은 모양이 num과 똑같은지 여부를 반환해주세요.

num: 숫자 return: true or false (뒤집은 모양이 num와 똑같은지 여부)

예를 들어, num = 123 return false => 뒤집은 모양이 321 이기 때문

num = 1221 return true => 뒤집은 모양이 1221 이기 때문

num = -121 return false => 뒤집은 모양이 121- 이기 때문

num = 10 return false => 뒤집은 모양이 01 이기 때문

문제 접근 방법

저는 우선 이 문제를 풀기위해서 숫자로 들어온 인자를
문자열로 바꾼 후, 배열화 시켜 reverse 메소드를 사용해야겠다고 생각했었습니다.
그 다음 배열화 된 문자들을 다시 합쳐 문자열로 반환 후 숫자열로 반환해서 출력시키게 끔 해야겠다고 생각했고

const sameReverseNumber = num => {
  let str = String(num).split("").reverse()
  let output = Number(str.join(""));
  
  if (num === output) {
  	return true
    } else {
    	return false
    }

}

동작과정

우선 변수 str에 인자로 들어온 숫자를 String 메소드를 사용해 문자열로 바꿔주고, split 메소드를 사용해서,각각의 숫자들을 배열의 요소로 만들어줍니다.

예를 들어
인자로 123 이 들어 왔다면, "123"으로 변경 후
["1","2","3"]으로 변경시킨 상태입니다.

이후 reverse 메소드 사용해서 자리를 바꿔줍니다.
그럼, ["3","2","1"] 이 됩니다.

즉, 변수 str에 할당 된 값은 배열 ["3","2","1"] 입니다.

그 다음.
변수 output에 변수 str을 할당하고 배열의 모든 요소를 연결해 문자열로 변환해주는 join 메소드를 사용해서, 값을 "3,2,1"로 변환시킨 후 Number 메소드로 감싸줘서 값을
숫자 321로 변환시킵니다.

즉, output 에는 321이란 숫자가 할당 된 것 입니다.

이제 조건문을 사용해서

if (num === output ) {
	return true
}else {
	return false
}

로 작성하여,

만약에 인자로 들어온 숫자가 값이 뒤바뀐 숫자가 할당 되 있는 변수output의 값과 같다면 true를 출력하고,
아니라면 false를 출력하는 식을 만들었습니다.

이상입니다.

profile
헤더부터 푸터까지!!!

0개의 댓글