문제
문자열 my_string이 주어질 때, A부터 z까지 알파벳 등장 횟수를 순서대로 담은 52의 정수 배열을 리턴하여라
코드 풀이
function solution(my_string) {
const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
const counts = new Array(52).fill(0);
for (const char of my_string) {
const index = alphabet.indexOf(char);
if (index !== -1) {
counts[index]++;
}
}
return counts;
}
해결방안
- alphabet : 알파벳 대소문자를 나타내는 문자열
- counts :알파벳 A-z 개수에 맞게 0으로 초기화된 배열 생성 (52개)
- for ..of : 문자열 my_string을 순회하며 각 문자의 등장 횟수를 센다
- indexOf : 배열에 지정된 요소를 찾을 수 있는 첫 번째 인덱스를 반환
- if(index !== 1) : 알파벳에 포함되는 문자인 경우에만 등장 횟수 해당 counts index를 증가시킨다
Array.prototype.indexOf() - JavaScript | MDN
indexOf() 메서드는 배열에서 지정된 요소를 찾을 수 있는 첫 번째 인덱스를 반환하고 존재하지 않으면 -1을 반환합니다.
developer.mozilla.org
다른 풀이
function solution(my_string) {
let alp = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var answer = new Array(52).fill(0);
for (let i = 0; i < my_string.length; i++) {
answer[alp.indexOf(my_string[i])]++;
}
return answer;
}
해결 방안
- for문을 사용하여 my_string을 순회하며 각 문자의 등장횟수를 세는 작업 수행
- answer[alp.indexOf(my)string[i])]++; 는 alp에서 my_stirng i번째 문자에 대응하는 인덱스를 찾아 answer 배열의 해당 인덱스 값을 증가시킨다
'기초다지기 > JS 코딩테스트' 카테고리의 다른 글
javascript 배열 중복 제거후 변수 k의 길이만큼 자르거나 채우는 방법 (0) | 2023.09.11 |
---|---|
javascript 영문으로 표기된 숫자 문자열을 숫자의 수로 변경하기 (0) | 2023.08.26 |
javascript 조건에 맞게 수열 변환 (0) | 2023.08.22 |
javascript 배열내 길이가 같은 문자열이 가장 많은 갯수 (0) | 2023.08.20 |
[Lv0] js 정수 배열에서 숫자 n이 총 몇 개 들어있는지 (0) | 2023.08.18 |