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
- 엔퀸즈
- 알고리즘
- 클라이언트
- 리액트
- 연습
- this
- nqueens
- 자바스크립트
- 포스기
- underscores
- 개발
- 코드스테이츠
- 취업
- grpahQL
- 초보
- JS
- JavaScript
- Instantiation Patterns
- 해커톤
- 공부
- underbar
- 코딩
- DOM
- react
- ftech
- vscode
- method
- 제일어려워
- array
- 일상
Archives
- Today
- Total
analogcoding
algorithm 연습9 본문
문제. input 으로 주어진 문자열의 각 단어들을 키로 , 단어의 사용 횟수를 값으로 가친 객체로 리턴하고
빈 문자열이 오면 빈 객체를 리턴.
Ex) input : 'ask a bunch get a bunch' => output : {ask: 1, a: 2, bunch: 2, get: 1}
해결방안.
1-1. input 문자열을 분리해서 빈 객체의 key 값으로 정함.
1-2. key 의 값은 1.
1-3. 이미 key 가 존재 할 경우 값 ++
2-1. reduce 메소드의 초기값으로 빈 객체를 줌.
2-2. 객체=acc 안에 curr이 있다면 값++
2-3. 없다면 값을 1 로 지정.
첫 번째 솔루션.
빈 객체를 생성. 빈 문자열이 들어오면 빈 객체를 리턴하고 문자열을 공백 기준으로 나눔.
unction countWords(input) {
let result = {};
if(input.length===0){
return {};
}
let arr = input.split(' ');
각 요소를 키로 지정한 채 조건문 생성 , 없다면 값을 1 로 주고 , 이미 존재한다면 1 씩 추가로 더 해줌.
for(let i = 0; i < arr.length; i++){
if(result[arr[i]]===undefined){
result[arr[i]] = 1 ;
}
else if(result[arr[i]]){
result[arr[i]] +=1
}
}
return result;
}
결과확인
두 번째 솔루션.
reduce 메소드의 초기값으로 빈 객체를 주고 객체(acc) 안에 curr이 키 값으로 있다면 값++ , 없다면 값을 1 로 지정.
function countWords(input) {
// your code here
if(input === ''){
return {};
}
let wordsArr = input.split(' ');
console.log(wordsArr);
return wordsArr.reduce(function(acc, curr){
if(curr in acc){
acc[curr]++;
}
else {
acc[curr] = 1;
}
return acc;
}, {});
}
결과확인
'Study JS for me > Algorithm' 카테고리의 다른 글
recursion 예제연습4 (0) | 2019.05.07 |
---|---|
algorithm 연습10 (0) | 2019.05.06 |
algorithm 연습8 (0) | 2019.05.04 |
recursion 예제연습3 (0) | 2019.05.04 |
recursion 예제연습2 (0) | 2019.05.02 |
Comments