[프로그래머스] Lv.1 가장 가까운 같은 글자.java

hgghfgf·2023년 5월 18일
0

프로그래머스

목록 보기
74/227

가장 가까운 같은 글자.java

class Solution {
    public int[] solution(String s) {
        int[] answer = new int[s.length()];
        
        for(int i=0;i<s.length();i++){
            if(i !=0){
                int idx = s.substring(0,i).lastIndexOf(s.charAt(i));
                if(idx != -1){
                    answer[i] = i-idx;
                    
                }
                else{
                    answer[i] = idx;
                }
            }
            else{
                answer[i] = -1;
            }
        }
        
        return answer;
    }
}

현재 위치 i가 0이 아니라면 (첫 번째 글자가 아니라면)
s 문자열의 0부터 i-1까지의 부분 문자열에서 현재 글자 s.charAt(i)의 인덱스를 찾습니다. 이를 idx 변수에 저장합니다. (lastIndexOf 메서드를 사용하여 구합니다.)
idx가 -1이 아니라면 (이전에 나온 같은 글자가 있다면)
answer[i]에 i - idx 값을 저장합니다. (가장 가까운 같은 글자와의 거리를 계산합니다.)
idx가 -1이라면 (이전에 나온 같은 글자가 없다면)
answer[i]에 -1을 저장합니다.
i가 0인 경우 (첫 번째 글자인 경우)
answer[i]에 -1을 저장합니다.

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

0개의 댓글