Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 코딩
- 리액트
- underbar
- array
- JS
- 해커톤
- Instantiation Patterns
- 공부
- 초보
- 엔퀸즈
- 자바스크립트
- vscode
- react
- 제일어려워
- JavaScript
- 연습
- 클라이언트
- grpahQL
- 취업
- DOM
- ftech
- this
- 코드스테이츠
- 일상
- nqueens
- 알고리즘
- 포스기
- 개발
- method
- underscores
Archives
- Today
- Total
analogcoding
algorithm 연습10 본문
문제. input 으로 숫자와 문장이 섞인 문자열이 들어오면 섞인 숫자의 합을 글자수로 나눈 값을 리턴.
소수일 경우 반올림/내림해서 리턴.
Ex) input : "Hello6 9World 2, Nic8e D7ay!" => output : ((6 + 9 + 2 + 8 + 7 = 32) / 17 letters) = 2
해결방안.
1. input 을 배열로 나누고 각 요소가 숫자인지 알파벳인지 판단.
2. 판단을 위한 알파벳으로 이루어진 소문자 배열을 생성.
3. input 을 소문자로 통일.
4. 각 인덱스에서 숫자 타입이 있다면 변수에 모두 더 함.
5. 문자의 경우 빈 배열에 넣어주고 그 length 를 파악.
input 을 소문자로 바꾼 뒤 배열로 변환 , 알파벳 문자열 배열 생성 , 문자열을 담을 빈 배열 생성 , 숫자 파악을 위한 변수 생성 .
var numberSearch = function(str) {
str = str.toLowerCase().split("")
var apb = "abcdefghijklmnopqrstuvwxyz"
apb = apb.split('')
var strs = [];
var numre = 0;
반복문으로 각 요소를 Number() 함수에 넣었을 때 숫자로 존재하면 그 요소들을 모두 변수에 더 해서 숫자 값 산출.
for(let i = 0; i < str.length; i++){
if(Number(str[i])){
numre += Number(str[i]);
}
반복문으로 각 요소가 알파벳 배열의 요소와 일치하면 빈 배열에 넣은 후 length 값 산출.
for(let j = 0; j < apb.length; j++){
if(apb[j]===str[i]){
strs.push(str[i])
}
}
}
반올림/반내림 후 값을 리턴.
return Math.round(numre / strs.length)
}
결과확인
'Study JS for me > Algorithm' 카테고리의 다른 글
recursion 예제연습 5 (0) | 2019.05.10 |
---|---|
recursion 예제연습4 (0) | 2019.05.07 |
algorithm 연습9 (0) | 2019.05.05 |
algorithm 연습8 (0) | 2019.05.04 |
recursion 예제연습3 (0) | 2019.05.04 |
Comments