👨🏻‍💻알고리즘/프로그래머스

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

waveofmymind 2023. 1. 30. 23:08

코드

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

풀이

  • 가장 첫 글자는 무조건 -1이다.
  • lastIndexOf()를 사용하면, i-1 인덱스를 기준으로 s.substring(i,i+1)이 있는지 없는지를 확인한다.
  • x가 -1이면 없다는 것이므로 answer[i]에 x를 넣는다
  • x가 -1이 아닐경우 1-x를 넣는다.