글쓰는쿼카의 PM 여정
⏳문자열 내 각 문자의 개수 반환 본문
0. 기본 정보
- 학습일: 2024. 5. 24.(금)
- 출처: 스파르타 부트캠프 알고리즘 탐험반(1주차 문자열)
문제 1. 문자열 내 각 문자의 개수 반환
// 문제 1: 문자열 내 각 문자의 개수 반환
// 문제 정의:
// 주어진 문자열에서 각 문자가 몇 번 등장하는지 세어라. 결과는 객체 형태로 반환한다.
// 조건:
// 대소문자를 구분한다.
// 공백도 하나의 문자로 간주한다.
// 빈 문자열이 주어질 수도 있다.
// 예시:
// 입력: "hello world"
// 출력: {'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1}
// 입력: "hello World"
// 출력: {'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'W': 1, 'r': 1, 'd': 1}
나의 답변 1)
- 빈 객체 answer 만들기
- for문 통해 문자열 s의 길이만큼 반복하기
- answer에 문자열 s가 있다면 +1, 없다면 1 만들어주기
- 콘솔에 answer 출력하기
let s = "hello world";
function count(s) {
const answer = {};
for (let i = 0; i < s.length; i++) {
if (!answer[s[i]]) {
answer[s[i]] = 1;
} else {
answer[s[i]] += 1;
}
}
return answer;
}
count(s);
<오류일지>
빈 객체에 값을 넣는다?
answer[s[i]] = 1
앞서 answer은 빈 객체로 선언했는데, 어떻게 빈 객체에 문자와 그 문자의 갯수값이 들어갈 수 있을까?
해결점은 객체(object) 사용법!
객체를 사용하는 2가지 방법은 점(.)과 대괄호([])이다.
let 강아지_정보 = { 이름: "밤송이", 종: "포메라니안", 나이: 8 }
// 여기서 강아지_정보의 나이 값인 8이 나오게 하려면?
// 첫째, 점(.)사용법 : object.key
강아지_정보.나이 // output: "8"
// 둘째, 대괄호([]) 사용법 : object[key]
강아지_정보[나이] // output: "8"
const 로 선언한 변수가 변한다?
const answer = {}
var, let, const 중에 오직 const로 선언한 변수만이 재할당이 안 된다는 것을 알고 있다.
그런데 어떻게 const로 선언한 빈 객체 answer가 꽉 찰 수 있을까?
해결점은 const 객체 선언 시 허점!
const로 객체를 선언했어도 객체라는 틀은 유지하되 객체 안 내용은 변할 수 있다.
'개발 > 알고리즘 & 코딩테스트' 카테고리의 다른 글
⏳두 문자열 포함 여부 파악하기 (0) | 2024.05.28 |
---|---|
⏳문자열에서 가장 많이 등장한 문자 찾기 (0) | 2024.05.26 |
[Lv.0] 콜라츠 추측, 서울에서 김서방 찾기, 나누어 떨어지는 숫자 배열 (0) | 2024.05.07 |
처음 맛보는 알고리즘 문제(2024. 4. 24.) (0) | 2024.04.24 |
처음 맛보는 코딩테스트 (2024. 4. 23.) (1) | 2024.04.23 |