일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- async/await
- class
- flex-direction
- probs.children
- 첫번째 미니 프로잭트
- 조건문
- Instanc
- 객체지향 프로그래밍 특징
- display
- Math.floor()
- props비구조화 할당
- Promise all
- probs
- 재귀함수 탬플릿
- 다형성 (polymorphism)
- 참조자료형
- align-iitems
- Promise Chaining
- css 정리
- 추상화 (abstraction)
- 얕은복사와 깊은 복사
- string
- justfiy-content
- 캡슐화 (encapsulation)
- 화살표함수 기본 개념
- align-content
- 클래스 문법 구조
- 문자열을 객체로 만드는법
- 재귀적으로 생각하기
- 상속 (inheritance)
Archives
- Today
- Total
희락코딩
countAllCharacters // 문자열을 객체로! 본문
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