문제
입출력 예
풀이.
1. 알파벳 갯수 만큼 alpha 배열 선언 (알파벳이 나온적이 있는지 체크하기 위해)
2. 글자의 위치를 저장하기 위한 idx배열 선언
3. s의 길이만큼 반복문을 돌며 한글자씩 비교
- 나온적이 있는지 먼저 체크(alpha배열의 값 확인 [0] -> a, [1] -> b ... )
- 나온적이 없다면(값이 0이라면) answer에 -1 추가하고 해당 alpha배열에 값을 0이 아닌 다른값으로 변환후 해당 글자의 위치를 idx배열에 저장
- 나온적이 있다면 해당 인덱스에서 최근글자의 인덱스를 빼서 저장하고 해당 글자 위치 최신화
코드
class Solution {
public int[] solution(String s) {
int [] alpha = new int[26];
int [] idx = new int[26];
int [] answer = new int[s.length()];
for(int i=0;i<s.length();i++){
if( alpha[s.charAt(i)-'a'] == 0){
answer[i] = -1;
alpha[s.charAt(i)-'a']++;
idx[s.charAt(i)-'a']=i;
}else{
answer[i] = i-idx[s.charAt(i)-'a'];
idx[s.charAt(i)-'a']=i;
}
}
return answer;
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
(LEVEL 1)프로그래머스 - 숫자 짝꿍(JAVA) (0) | 2023.01.15 |
---|---|
(LEVEL 1)프로그래머스 - 햄버거 만들기(JAVA) (0) | 2023.01.14 |
(LEVEL 0)프로그래머스 - 369게임(JAVA) (0) | 2023.01.10 |
(LEVEL 0)프로그래머스 - 영어가 싫어요(JAVA) (0) | 2023.01.10 |
(LEVEL 0)프로그래머스 - 문자열 계산하기 (JAVA) (0) | 2023.01.10 |