문제
주어진 문자열에서 알파벳 소문자의 첫 번째 등장 위치를 찾아 반환하는 함수를 작성하세요.
주어진 문자열에 소문자 알파벳이 포함되지 않는 경우에는 해당 알파벳의 위치를 -1로 반환합니다.
입력
1글자 이상 알파벳 소문자 글자가 공백없이 들어갑니다.
예시
const test_case = 'abacabad'
// [0, 1, 3, 7, -1, -1, -1, -1,-1, -1, -1, -1, -1, -1, -1, -1,-1, -1, -1, -1, -1, -1, -1, -1,-1, -1]
풀이
function findFirst(str) {
const strArray = new Array(26).fill(-1);
str.split('').forEach((element, _index) => {
const idx = element.charCodeAt() - 97;
if (strArray[idx] === -1) strArray[idx] = _index;
});
return strArray;
}
알파벳 26글자에 배열을 만들고 -1로 초기화 합니다. 문자열을 분할하여 각 문자의 코드값을 계산 후 소문자 중에 가장 처음 있는 a에 코드값을 빼준 것이 글자의 인덱스값이 됩니다.
해당 인덱스값에 -1이면 문자가 위치하는 인덱스값을 넣어줍니다.
최종적으로 모든 알파벳에 대한 첫 등장 위치가 포함된 배열을 반환합니다.
'코딩문제' 카테고리의 다른 글
전화번호 키패드 누름 시간 계산 (0) | 2024.03.27 |
---|---|
거꾸로 최댓값 찾기 (0) | 2024.03.27 |
문자열 끝과 처음의 만남 (0) | 2024.03.27 |
문자열의 특정 위치의 문자 가져오기 (0) | 2024.03.25 |
조정된 평균 점수 (0) | 2024.03.25 |