본문 바로가기

Algorithm(Javascript)

알고리즘 문제 2

 

숫자를 하나 받아서 뒤집어진 숫자를 반환하는 문제이다.

 

1.  나머지 몫으로 풀이

 

 

코드를 처음부터 설명하자면 x라는 인자로 숫자를 받아서 만약 0이라면 바로 0을 반환하는 조건문을 넣어준다.

0이외의 숫자가 들어오면 밑에 코드들이 실행된다. while문을 통해서 0보다 클때까지만 코드블럭있는 코드들을

실행시켜준다. 먼저 res라는 변수에다가 x를 10으로 나누고 나머지를 더해준다.

 

그리고 x에다가 자기 자신을 10으로 나누고 난 몫을 할당해준다. parseInt()는 안에 있는값을 정수로 만들어준다.

만약 x의 값이 5678이라면  value에다가는 할당된 원래 값에다가 10을 곱하고 10으로 나눈 나머지 즉 8을 더해준다.

처음에는 value에는 0이 할당되어있기때문에 그대로 8이다. 그 다음 567에서 10으로 나눈 나머지 7을

원래 value값에서 10을 곱한후 더하게 되면 87이고 계속해서 이 과정을 x값이 0이될때까지 하게도면 8765 즉 원래

받은값을 뒤집은값이 된다.

 

그 밑에 있는 코드는 x가 음수일 때 -1을 곱해 양수로 만든후 이전과정을 똑같이 반복한 후값을 반환해줄때 다시 -1을 곱해

원래 음수로 반환하는 코드다.

 

2.  문자열로 바꿔서 푸는법

 

 

str 변수에다가 숫자로 받은 값을 toString()로 문자열로 바꾼뒤 그 문자열을 split()으로 쪼개서 배열로 반환한뒤

reverse()로 배열을 뒤집어준다. 만약 함수로 받은 값이 4567이면 str 변수에는 ['7', '6', '5', '4']가 할당된다.

그 이후에 배열을 첫번째 인덱스부터 검사하면서 '0'이 있다면 배열에서 제거를 하고 만약 '0'이 아니라면

반복문을 중단한다. '0'을 제거하는 코드가 끝나면 다시 배열을 문자열로 합치는 join('')을 사용한후

문자열을 숫자로 바꾸고나서 값을 반환해준다. 

 

아래에 음수일때는 처음에 -1을 붙여줘 양수를 만든 후에 위와 같은 작업을 한 후 마지막에 반환할때 값에다가

-1을 다시 곱해줘서 원래의 음수로 돌려준다.

 

 

 

 

'Algorithm(Javascript)' 카테고리의 다른 글

알고리즘 문제 6  (0) 2021.10.25
알고리즘 문제 5  (0) 2021.10.22
알고리즘 문제 4  (0) 2021.10.21
알고리즘 문제 3  (0) 2021.10.20
알고리즘 문제 1  (0) 2021.10.19