개발 창고/Algorithm
[프로그래머스] 가장 가까운 같은 글자 - Java
로이제로
2024. 2. 24. 09:00
반응형
이 버전에서는 TOC를 지원하지 않습니다. (ex. 모바일)
문제
https://school.programmers.co.kr/learn/courses/30/lessons/142086
문제 내용은 지적 재산 보호 차원에서 가져오지 않고 풀이만 공유드리도록 하겠습니다.
풀이
제 풀이가 무조건적으로 맞는 것도 최적의 답변도 아니지만, 이런 풀이도 있다는 차원에서 작성해 보며, 좀 더 나은 방법이 있다면 이야기해 주셔도 도움 될 것 같습니다.
import java.util.HashMap;
class Solution {
public int[] solution(String s) {
// Step. 문자열 길이 만큼 int 배열 선언
int[] answer = new int[s.length()];
// Step. 가까운 거리의 문자열 위치를 담을 map 선언
HashMap<Character, Integer> map = new HashMap<>();
// Step. 각 문자열 별로 탐색 처리
for(int i = 0; i < s.length(); i++){
// Step. 문자열 추출
char ch = s.charAt(i);
// Step. 이전에 해당 문자열이
if(map.get(ch) != null) answer[i] = i - map.get(ch);
else answer[i] = -1;
// Step. 현재의 문자열 위치를 map에 갱신
map.put(ch, i);
}
return answer;
}
}
반응형