자료구조&알고리즘/프로그래머스
프로그래머스 - 가장 가까운 같은 글자 (JAVA)
yong_ღ'ᴗ'ღ
2023. 11. 13. 15:27
https://school.programmers.co.kr/learn/courses/30/lessons/142086
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제)
문자열 s에서, 각 문자 c에서 자신보다 앞에 나오는 문자 중 가장 가까운 자기와 같은 글자와의 거리차이 구하기
앞에 자신과 같은 문자가 없다면 -1
접근 방식)
1. 문자와 그 문자의 위치를 저장할 HashMap, 정답배열 int[] answer 생성
2. 문자열 s만큼 반복문 돌면서, 해당 문자가
→ map에 없으면, answer배열에 -1 저장
→ map에 있으면, 현재 위치 - map에 저장된 위치
3. map에 현재 문자와 위치 넣음
4. 정답배열 반환
import java.util.*;
class Solution {
public int[] solution(String s) {
int[] answer = new int[s.length()];
HashMap<Character, Integer> map = new HashMap<>();
for (int i = 0; i < s.length(); i++) {
char now = s.charAt(i);
if (!map.containsKey(now))
answer[i] = -1;
else
answer[i] = i - map.get(now);
map.put(now, i);
}
return answer;
}
}