일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Instanc
- 상속 (inheritance)
- 다형성 (polymorphism)
- 첫번째 미니 프로잭트
- probs
- 재귀적으로 생각하기
- Promise all
- 객체지향 프로그래밍 특징
- string
- 캡슐화 (encapsulation)
- Promise Chaining
- justfiy-content
- 조건문
- 참조자료형
- 문자열을 객체로 만드는법
- 클래스 문법 구조
- align-content
- 얕은복사와 깊은 복사
- Math.floor()
- 화살표함수 기본 개념
- props비구조화 할당
- align-iitems
- 추상화 (abstraction)
- class
- 재귀함수 탬플릿
- probs.children
- display
- css 정리
- async/await
- flex-direction
Archives
- Today
- Total
희락코딩
mostFrequentCharacter 본문
728x90
반응형
function mostFrequentCharacter(str) {}
문제
문자열을 입력받아 가장 많이 반복되는 문자를 리턴
▶ 띄어쓰기 제외
▶ 가장 많이 반복되는 문자가 다수일 경우, 가장 먼저 해당 횟수에 도달한 문자 리턴
▶ 빈 문자열을 입력받은 경우, 빈문자열로 리턴
입출력예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
let output = mostFrequentCharacter('apples not oranges');
console.log(output); // --> 'p'
output = mostFrequentCharacter('hello world');
console.log(output); // --> 'l'
output = mostFrequentCharacter(' ');
console.log(output); // --> ''
output = mostFrequentCharacter('');
console.log(output); // --> ''
output = mostFrequentCharacter('abba');
console.log(output); // --> 'b'
|
cs |
수도코드 & 코드작성
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
|
function mostFrequentCharacter(str) {
//가장 많이 반복되는 문자(letter)를 리턴
//각 문자가 몇개 있는지 확인
//가장 많이 반복되는 문자가 다수일 경우, 가장 먼저 해당 횟수에 도달한 문자를 리턴해야하기 때문에
//문자열을 객체로 만들때(각 문자의 갯수를 셀때) 가장 많이 반복되는 문자 찾는 작업도 함께 실행
let rstObj = {}; //문자열을 객체로 만들어 저장할 변수 선언
let mostCh = ''; //가장 횟수가 많은 문자를 저장하는 변수 선언
let mostCnt = 0; //most 횟수를 저장하는 변수 선언
for (let ch of str) {
if (ch === ' ') { //띄어쓰기는 제외
continue;
}
//1. 문자가 몇번 반복되는지 세는 작업
if (rstObj[ch] === undefined) {
rstObj[ch] = 1;
} else {
rstObj[ch] = rstObj[ch] + 1;
}
//2. 가장 많이 반복된 문자를 찾는 작업(비교)
if (mostCnt < rstObj[ch]) {
mostCh = ch;
mostCnt = rstObj[ch];
}
}
return mostCh;
}
|
cs |
문제풀이
이문제의 주요핵심은 문자열을 객체로, 가장 많은 횟수를 저장, 가장 먼저해당되는 문자 이 세가지 입니다.
우선 문자열을 객체로 만들어주고 몇번 반복되는지 세는 작업을 합니다. 이에 대한 설명은 링크 참고
https://joy-codeing-lee.tistory.com/63?category=959903
그리고 가장 많이 반복된 문자를 찾는 비교 작업을 해줍니다. 비교하는 방법을 콘솔창을 활용해서 실험을 통해 알아봅시다.
이렇게 객체와 넘버를 비교할때 객체의 키값을 활용해서 비교를 할 수 있었고 가장 횟수가 많은 문자를 선언한 변수를 반환 합니다.
728x90
반응형
'프로그래밍 > 코드 문제 풀이' 카테고리의 다른 글
알고리즘 - 최후의 한자리 수를 리턴하기. (0) | 2021.05.05 |
---|---|
알고리즘 - 각 자릿수를 더한 값 리턴하기 (0) | 2021.05.05 |
countAllCharacters // 문자열을 객체로! (0) | 2021.04.25 |
addToBackOfNew & addToFrontOfNew (0) | 2021.04.25 |
getEvenNumbers (1) | 2021.04.24 |
Comments