본문 바로가기
알고리즘 문제/프로그래머스_Lv1 도장깨기

[프로그래머스] 가장 가까운 같은 글자 (Javascript)

by 스코필 2025. 1. 22.

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/142086

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 설명

문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다. 자신의 앞에 같은 글자가 없다면 -1로 표현합니다.

문자열 s이 주어질 때, 위와 같이 정의된 연산을 수행하는 함수를 완성하세요.

제한 사항

  • 1 <= s의 길이 <= 10,000
    • s은 영어 소문자로만 이루어져 있습니다.

 

✅ Code - 성공

function solution(s) {
    var answer = [];
    
    let strMap = new Map();
    for (let i = 0; i < s.length; i++) {
        if (strMap.get(s[i]) === undefined) {
            answer.push(-1);
            strMap.set(s[i], i);
        } else {
            answer.push(i - strMap.get(s[i]));
            strMap.set(s[i], i);
        }
    }
    
    return answer;
}