본문 바로가기
코테연습

30.Persistent Bugger.

by hxunz 2022. 4. 4.

Description:

Write a function, persistence, that takes in a positive parameter num and returns its multiplicative persistence, which is the number of times you must multiply the digits in num until you reach a single digit.

For example (Input --> Output):

39 --> 3 (because 3*9 = 27, 2*7 = 14, 1*4 = 4 and 4 has only one digit)
999 --> 4 (because 9*9*9 = 729, 7*2*9 = 126, 1*2*6 = 12, and finally 1*2 = 2)
4 --> 0 (because 4 is already a one-digit number)

function persistence(num) {
  let i = 0;
  
  while(num.toString().length !== 1) {
   num = num.toString().split('').reduce((acc,cur) => acc * cur);
   i++;
  }
  
  return i;
}

while 문을 사용해주었다. 조건을 주어진 숫자의 길이가 1이 아닐때까지 반복하는것으로 설정하였다.

(num.toString().length !== 1)
 

그다음에는 주어진 숫자 num을 각 자릿수마다 하나씩 잘라서 새로운 배열에 넣어준 다음에

num.toString().split('')
 

reducer를 사용해서 배열의 각각의 요소들을 곱해주었다. 

reduce((acc,cur) => acc * cur)
 

주어진 숫자의 길이가 1이 되면 이 반복문은 종료가 되는것이기 때문에 i++을 사용해서 총 몇번 반복되었는지를 구했다. 

 

'코테연습' 카테고리의 다른 글

32.Your order, please  (0) 2022.04.07
31.Replace With Alphabet Position  (0) 2022.04.07
29.Take a Ten Minutes Walk  (0) 2022.04.04
28.Duplicate Encoder  (0) 2022.04.04
27.Counting Duplicates  (0) 2022.04.03

댓글