알고리즘

[LeetCode] 387 First Unique Character in a String JavaScript

sandwe 2022. 7. 29. 22:04

문제 링크

 

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;
};

 

참고

https://www.youtube.com/watch?v=Z_-hZm-4WfA