희락코딩

countAllCharacters // 문자열을 객체로! 본문

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

countAllCharacters // 문자열을 객체로!

Hello JoyCoding 2021. 4. 25. 01:21
728x90
반응형

function countAllCharacters(str){}

 

문제 

문자열을 입력받아 문자열을 구성하는 각 문자(letter)를 키로 갖는 객체를 리턴해야 합니다. 각 키의 값은 해당 문자가 문자열에서 등장하는 횟수를 의미하는 number 타입의 값이어야 합니다.

 

▶ 빈 문자열을 입력받은 경우, 빈 객체를 리턴해야됩니다.

 

입출력 예시

1
2
let output = countAllCharacters('apple');
console.log(output); // --> {a: 1, p: 2, l: 1, e:1}
cs

 

수도코드

1. 저장할 빈 객체 변수를 선언한다.

2. 문자열의 요소를 반복해서 돌린다.

3. 선언한 오브잭트에 문자열 요소를 활용해서 키값을 만들어 주는 작업하기

4. 문자 추가 조건과 문자가 있을 경우 횟수 추가 조건을 만들어 준다.

5. 정보를 담아준 빈 객체를 반환한다.

 

코드작성

1
2
3
4
5
6
7
8
9
10
11
12
13
function countAllCharacters(str) {
  //문자열을 구성하는 각 문자(letter)를 키로 갖는 객체를 리턴
  //각 키의 값은 해당 문자가 문자열에서 등장하는 횟수
  let rstObj = {}; //객체 변수 선언
  for (let ch of str) {
    if (rstObj[ch] === undefined) { //새로운 문자 -> 1 
      rstObj[ch] = 1;
    } else { //문자 있음 -> 횟수 추가
      rstObj[ch] = rstObj[ch] + 1;
    }
  }
  return rstObj;
}
cs

문제풀이

이문제의 핵심은 객체안에 키를 만들어 주는 작업입니다. 쉽게말해 문자열을 객체로 만들어줍니다

6번줄에 rstObj[ch] === undefined 가 핵심입니다. 직관적인 이해를 위해 콘솔창에서 실험을 해봅시다.

 

문자열을 객체로 만드는 법

 

위와 같은 작업을 하고 문자가 중복해서 있을시 9번줄처럼 rstObj[ch] += 1 해서 횟수 추가 실행문을 만들고 담겨진 객체를 반환합니다.

728x90
반응형

'프로그래밍 > 코드 문제 풀이' 카테고리의 다른 글

알고리즘 - 각 자릿수를 더한 값 리턴하기  (0) 2021.05.05
mostFrequentCharacter  (0) 2021.04.25
addToBackOfNew & addToFrontOfNew  (0) 2021.04.25
getEvenNumbers  (1) 2021.04.24
makeLastSeenMsg  (0) 2021.04.09
Comments