희락코딩

알고리즘 - 각 단어의 개수 정보를 담은 객체 본문

프로그래밍/코드 문제 풀이

알고리즘 - 각 단어의 개수 정보를 담은 객체

Hello JoyCoding 2021. 5. 5. 20:28
728x90
반응형

문제

문자열을 입력 받아 문자열에 존재하는 각 단어의 개수 정보를 담은 객체를 리턴

 

※ 단어가 존재하지 않을 경우, 빈 객체 리턴

※ 단어는 공백을 제외한 연속된 알파벳 문자열로 정의

※ 대소문자 구분하지 않습니다.

 

입출력 예시

1
2
let output = stingObj('come hello a COME a to me');
console.log(output); // --> { come: 2, a: 2, hello: 1, to: 1, me: 1 }
cs

 

수도코드 & 코드작성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function stringObj(str) {
  // TODO: 여기에 코드를 작성합니다.
  let strLower = str.toLowerCase()   // 입력받은 문자열 전부 소문자로
  let strSplit = strLower.split(' ')  // 띄어쓰기 기준으로 배열 만들기
  let newObj = {}  // 저장할 새로운 객체 생성
 
 // 필터를 사용해서 빈문자열 걸러넨 배열 만들기
  let testStr = strSplit.filter(ch => ch.length!==0)
 
 // 반복하는 문자 세는 작업
  for(let i in testStr){
    if(newObj[testStr[i]]===undefined){    
      newObj[testStr[i]] = 1
    }else{
      newObj[testStr[i]] += 1
    }
  }
  return newObj;
}
cs

 

문제풀이

이문제의 핵심은 입력받은 문자열을 전부 소문자로 만들고 띄어 쓰기 기준으로 배열을 만들어 주는 작업이 핵심이다.

 

 

여기서 다시 필터를 사용해서 빈문자열을 걸러넨 배열을 다시 만들어 주고 필터로 걸러넨 배열을 바탕으로

 

새롭게 담을 객체를 만들어 주고 반복하는 문자 세는 작업을 하면 됩니다.

 

 

문자열을 객체로 만들어 주는법 & 반복하는 문자 세는 작업

https://joy-codeing-lee.tistory.com/63?category=959903

 

countAllCharacters // 문자열을 객체로!

function countAllCharacters(str){} 문제 문자열을 입력받아 문자열을 구성하는 각 문자(letter)를 키로 갖는 객체를 리턴해야 합니다. 각 키의 값은 해당 문자가 문자열에서 등장하는 횟수를 의미하는 numbe

joy-codeing-lee.tistory.com

 

728x90
반응형
Comments