가장 가까운 같은 글자

seheeee_97·2023년 11월 20일
0

회고팀

목록 보기
16/41

import java.util.ArrayList;

class Solution {
    public int[] solution(String s) {
        ArrayList<Integer> answerList = new ArrayList<>();

        for (int i = 0; i < s.length(); i++) {     //현재 위치 i
            boolean duplicate = false;         //같은 글자 찾았는지 여부 체크

            for (int j = i - 1; j >= 0; j--) {      //앞에 나온 글자 위치 j
                if (s.charAt(i) == s.charAt(j)) {
                    answerList.add(i - j);
                    duplicate = true;
                    break;          //같은게 더 있더라도 가장 가까운 글자의 위치를 알면되니까 break
                }
            }

            if (!duplicate) {       //duplicate가 false이면 앞에 같은 글자가 없으니 -1
                answerList.add(-1);
            }
        }
        
        //리스트를 배열로 변환
        int[] answer = new int[answerList.size()];
        for (int i = 0; i < answerList.size(); i++) {
            answer[i] = answerList.get(i);
        }
        
        return answer;
    }
}













class Solution {
    public int[] solution(String s) {
        int[] answer = {};
        int count = 0;
        
        answer[0] = -1;
        
        for(int i=1; i<=s.length(); i++){ //현재 위치
            
            for(int j=i-1; i<=i; j--){ //앞에 같은거 있는지 검사
                if(s.charAt(i) == s.charAt(j)){
                    answer[i] = i - j;
                    break;
                } else {
                    answer[i] = -1;
                }
            }
        }
        
        return answer;
    }
}

0개의 댓글