반응형
이 버전에서는 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;
}
}
반응형
'개발 창고 > Algorithm' 카테고리의 다른 글
[프로그래머스] 명예의 전당 (1) - JAVA (56) | 2024.02.28 |
---|---|
[프로그래머스] 문자열 나누기 - JAVA (74) | 2024.02.26 |
[프로그래머스] 크기가 작은 부분 문자열 - JAVA (55) | 2024.02.22 |
[프로그래머스] 개인정보 수집 유효기간 - JAVA (47) | 2024.02.21 |
[프로그래머스] 둘만의 암호 - JAVA (53) | 2024.02.16 |