문제 링크
First Unique Character in a String - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
문제 유형
해쉬 맵(Hash Map)
문제 풀이
이 문제는 문자열이 주어지고, 문자열에서 처음으로 중복되지 않는 문자의 인덱스를 반환하는 문제이다. 해당 문제는 해쉬 맵을 사용하면 쉽게 해결할 수 있다.
먼저, 각 문자를 확인하면서 키를 각 문자를 저장하고, 값에 중복된 횟수를 저장하는 해쉬 맵을 만든다.
다시 각 문자를 확인하면서 해당 문자에 해당하는 키의 값이 1이면 문자가 중복되지 않는다는 것을 의미하므로 해당 문자 인덱스를 출력한다.
위의 방법으로 문제를 해결하면 O(n)의 시간복잡도로와 O(n)의 공간복잡도로 문제를 해결할 수 있다.
코드
var firstUniqChar = function(s) {
const map = new Map();
let answer = -1;
for (let i = 0; i < s.length; i++) {
map.set(s[i], map.get(s[i]) + 1 || 1);
}
for (let i = 0; i < s.length; i++) {
if (map.get(s[i]) === 1) {
answer = i;
break;
}
}
return answer;
};
참고
'알고리즘' 카테고리의 다른 글
[LeetCode] 746 Min Cost Climbing Stairs JavaScript (0) | 2022.08.05 |
---|---|
[LeetCode] 692, 347 Top K Frequent Words, Top K Frequent Elements JavaScript (0) | 2022.08.03 |
[LeetCode] 1 Two Sum JavaScript (0) | 2022.07.27 |
[LeetCode] 1047, 1209 Remove All Adjacent Duplicates In String I, II JavaScript (0) | 2022.07.26 |
[LeetCode] 3 Longest Substring Without Repeating Characters JavaScript (0) | 2022.07.25 |