2020.코딩일지

[JS][코플릿]Algorithm Basic-18_numberSearch 본문

algorithm

[JS][코플릿]Algorithm Basic-18_numberSearch

개발하는라푼젤 2022. 8. 14. 21:58
728x90

문자열을 입력받아 문자열에서 숫자를 모두 찾아 더한 뒤에 해당 값을 (숫자와 공백을 제외한 나머지) 문자열의 길이로 나눈 값을 정수로 반올림하여 리턴해야 합니다.

 

입출력예시

더보기
//입출력예시
let output = numberSearch('Hello6 ');
console.log(output); // --> 1

output = numberSearch('Hello6 9World 2,');
console.log(output); // --> 2

output = numberSearch('Hello6 9World 2, Nic8e D7ay!');
console.log(output); // --> 2

 

 

👻

 

 

function numberSearch(str) {
  const digits = '0123456789';

  if (str === '') {
    return 0;
  }

  let sum = 0;
  let pureStr = '';
  for (let i = 0; i < str.length; i++) {
    if (digits.includes(str[i])) { // true 숫자인 경우
      sum += Number(str[i]);
    } else if (str[i] !== ' ') { // 숫자도 공백도 아닌 경우
      pureStr += str[i];
    }
  }
  // 결과를 반올림 한다.
  return Math.round(sum / pureStr.length);
}

 

 

 

.includes()는 문자열에 특정문자열을 포함하는지 불값으로 확인하는 메서드.

arr.includes(valueToFind [, fromIndex])

valueToFind : 검색할 문자열로 필수 요소. 대소문자를 구분한다.

fromIndex : 검색을 시작할 인덱스 (없으면 전체 문제열을 대상으로)

 


else if(str[i] !== ' ')로 두번째 조건 걸기.

 

첫번째 조건에 숫자인걸 골라냈으니까

두번째 조건에 (숫자도아니고) 공백도 아닌걸 골라낼 수 있다. 

 


Math.round() 반올림
let a = Math.round(2.60); //3
let b = Math.round(2.50); //3
let c = Math.round(2.49); //2
let d = Math.round(-2.60); //-3
let e = Math.round(-2.50); //-2
let f = Math.round(-2.49); //-2
Comments