Largest 5 digit number in a series ( 5 kyu )

문제

In the following 6 digit number:

283910

91 is the greatest sequence of 2 digits.

In the following 10 digit number:

1234567890

67890 is the greatest sequence of 5 digits.

Complete the solution so that it returns the largest five digit number found within the number given. The number will be passed in as a string of only digits. It should return a five digit integer. The number passed may be as large as 1000 digits.

주어진 숫자중 연속된 5자리로 이루어진 가장 큰 수를 찾는 문제

풀이

function solution(digits){
  let str = digits.toString();
  let max = Number(str.slice(0, 5));
  for ( let i = 0; i <= str.length-5; i++ ) {
    if ( Number(str.slice(i, i+5)) > max ) {
      max = Number(str.slice(i, i+5))
    }
  return max;
}

5개씩 잘라서 비교한 뒤에 가장 큰 값을 리턴

다른 사람의 풀이

function solution(digits){
  if (digits.length <= 5) return Number(digits);
  return Math.max(Number(digits.substr(0, 5)), solution(digits.substr(1)));
}

접근은 같지만 메소드로 조금 더 짧게 표현


'자료구조, 알고리즘 > Codewars 문제' 카테고리의 다른 글

Triangle type ( 6 kyu )  (0) 2017.12.09
Pete, the baker ( 5 kyu )  (0) 2017.12.09
Sort the odd ( 6 kyu )  (0) 2017.12.06
Is a number prime? ( 6 kyu )  (0) 2017.12.06
Create Phone Number ( 6 kyu )  (0) 2017.12.06

+ Recent posts