한 번 사용한 최초문자
문자열에서 한번만 사용한 문자를 찾으려고 합니다. 매개변수 s에 문자열이 주어지면 한번만 사용한 문자 중 문자열에서 가장 먼저 나타난 문자의 인덱스 번호를 반환하는 프로그램을 작성하세요. 인덱스는 1부터 시작합니다. 한번만 사용한 문자가 없을 경우 -1를 반환하세요.
s answer
"statitsics" | 3 |
"aabb" | -1 |
"stringshowtime" | 3 |
"abcdeabcdfg" | 5 |
제한사항: • 문자열 s의 길이는 100을 넘지 않습니다. • 문자열은 소문자로만 이루어져 있습니다.
입력예제 1 설명 : 한번만 사용한 문자는 a, c이고, 문자열에서 먼저 나타난 것은 a이고 인덱스는 3입니다.
const func = (string) => {
// 주어진 문자열을 각 문자로 분리하여 배열로 만든다.
const strArr = string.slice().split('');
// 결과를 저장할 객체를 생성한다.
const result = {};
// strArr 배열의 각 문자에 대해 처리,
for (let i = 0; i < strArr.length; i++) {
const currentChar = strArr[i];
// 현재 문자가 result 객체의 프로퍼티로 존재하는지 반복문으로 확인한다.
const existingValue = result[currentChar];
// 현재 문자의 값이 존재하는지 확인한다.
// 존재하는 경우 해당 값을 1 증가시킨다.
// 존재하지 않는 경우(빈 값인 경우) 새로운 키를 생성하고 값을 1 준다.
result[currentChar] = existingValue ? existingValue + 1 : 1;
}
// 0일 경우 -1이기 때문에 중간에 한번 걸러준다.
const filterFunc = (result) => {
return result === 0 ? -1 : result;
}
return filterFunc(Object.values(result).findIndex((el) => el === 1) + 1);
}
'Coding > Today I Learned' 카테고리의 다른 글
2024.04.27(Sat.) <React Query를 통한 state에 관한 고찰 > (2) | 2024.04.27 |
---|---|
2023.08.11(Fri.) <Atomic Design Pattern> (0) | 2023.08.12 |
2023.07.12(Wed.) <React 항상 z-index 최상위에 있는 Modal 만들기> (0) | 2023.07.12 |
2023.06.29(Tue.) <Blob Type Response의 에러 처리> (0) | 2023.06.29 |
2023.06.26(Mon.) <UX/UI 아티클 정리> (0) | 2023.06.26 |