일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Math.floor()
- display
- class
- css 정리
- align-iitems
- 화살표함수 기본 개념
- 상속 (inheritance)
- Promise all
- 첫번째 미니 프로잭트
- 캡슐화 (encapsulation)
- 객체지향 프로그래밍 특징
- 얕은복사와 깊은 복사
- 다형성 (polymorphism)
- async/await
- 조건문
- probs.children
- string
- props비구조화 할당
- 재귀함수 탬플릿
- justfiy-content
- Promise Chaining
- flex-direction
- 참조자료형
- 추상화 (abstraction)
- align-content
- 재귀적으로 생각하기
- 클래스 문법 구조
- Instanc
- probs
- 문자열을 객체로 만드는법
Archives
- Today
- Total
희락코딩
알고리즘 - 각 단어의 개수 정보를 담은 객체 본문
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
728x90
반응형
'프로그래밍 > 코드 문제 풀이' 카테고리의 다른 글
프로그래머스 1단계 - 최대공약수와 최소공배수 (0) | 2021.06.15 |
---|---|
프로그래머스 1단계 - 짝수와 홀수 (0) | 2021.06.14 |
알고리즘 - 최후의 한자리 수를 리턴하기. (0) | 2021.05.05 |
알고리즘 - 각 자릿수를 더한 값 리턴하기 (0) | 2021.05.05 |
mostFrequentCharacter (0) | 2021.04.25 |
Comments