반응형
🔐 문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/142086
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔐 문제 분석
- 문자열을 순차적으로 접근하여, 문자별로 마지막에 방문한 인덱스를 Map에 담는다.
- Map에 해당 문자가 key로 존재한다면, 방문한 문자열이므로 현재 인덱스에서 Map의 value를 뺀다.
- Map에 해당 문자가 key로 존재하지 않는다면, 첫 방문이므로 -1을 대입한다.
🔐 문제 풀이
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
class Solution {
public int[] solution(String s) {
int[] answer = new int[s.length()];
Map<Character, Integer> characterMap = new HashMap<>();
for (int i = 0; i < s.length(); i++) {
if (characterMap.containsKey(s.charAt(i))) {
answer[i] = i - characterMap.get(s.charAt(i));
} else {
answer[i] = -1;
}
characterMap.put(s.charAt(i), i);
}
return answer;
}
}
반응형
'Algorithm' 카테고리의 다른 글
[프로그래머스] Lv1. 2016년 (0) | 2023.06.10 |
---|---|
[프로그래머스] Lv1. 추억 점수 (0) | 2023.06.09 |
[프로그래머스] Lv1. 두 개 뽑아서 더하기 (0) | 2023.06.07 |
[프로그래머스] Lv1. K번째수 (0) | 2023.06.07 |
[프로그래머스] Lv1. 문자열 내 마음대로 정렬하기 (0) | 2023.06.06 |