알파벳의 첫 등장 위치 찾기

문제


주어진 문자열에서 알파벳 소문자의 번째 등장 위치를 찾아 반환하는 함수를 작성하세요.

주어진 문자열에 소문자 알파벳이 포함되지 않는 경우에는 해당 알파벳의 위치를 -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