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

2025. 7. 15. 15:09·CodingTest/Programmers

사진을 클릭하면 해당 문제로 이동

💡풀이

//		 1. 문자열 s를 배열로 쪼개서 순회한다
//		 2-1. 앞선 문자가 존재하지 않을경우 -1을 배열에 저장하고 다음으로 넘어간다.
//		 2-2. 현재 문자로부터 앞으로 순회하며 같은 문자를 찾는다.
//		 2-3. 동일한 문자를 찾게되면 count를 멈추고 배열에 추가한다.
class Solution {
    public int[] solution(String s) {
        char[] chars = s.toCharArray();
        int[] answer = new int[s.length()];

        for (int i = 0; i < chars.length; i++) {
            if (s.indexOf(chars[i]) == i) {
                answer[i] = -1;
                continue;
            }
            int count = 1;
            for (int j = i - 1; j >= 0; j--) {
                if (chars[i] == chars[j]) {
                    answer[i] = count;
                    break;
                }
                count++;
                
            }
        }
        return answer;
    }
}

💡풀이 2

- substring으로 문자열을 잘라가면서 해결

//         1. 찾고자하는 문자 target을 구한다
//         2. i 번째 문자 바로 앞까지 s 문자열을 자른다
//         3. 자른 문자열에서 target과 동일하고 가장 마지막에 존재하는 문자의 index를 구한다
//         4. 동일한 문자가 존재하지않는다면(-1) -1을 저장하고 존재한다면 index 값의 차이를 저장한다.
class Solution {
    public int[] solution(String s) {
        int[] answer = new int[s.length()];
        
        for (int i = 0; i < s.length(); i++) {
            char target = s.charAt(i);
            
            int index = s.substring(0, i)
                    .lastIndexOf(target);
            
            answer[i] = index != -1 ? i - index : -1;
        }
        return answer;
    }
}

📖새로 배운 부분

문자열을 index 단위로 분리해서 탐색해야하는 경우에는

substring을 활용하여 해결하도록 고민해보자


 

 

GitHub - okjunghyeon/Programmers_CodingTest: 프로그래머스 관련 코딩테스트 문제를 풀이한 저장소입니다.

프로그래머스 관련 코딩테스트 문제를 풀이한 저장소입니다. Contribute to okjunghyeon/Programmers_CodingTest development by creating an account on GitHub.

github.com

'CodingTest > Programmers' 카테고리의 다른 글

[프로그래머스, Java] 두 개 뽑아서 더하기  (0) 2025.07.15
[프로그래머스, Java] 시저 암호  (0) 2025.07.15
[프로그래머스, Java] 최소직사각형  (0) 2025.07.13
[프로그래머스, Java] 이상한 문자 만들기  (1) 2025.07.13
[프로그래머스, Java] 삼총사  (0) 2025.07.12
'CodingTest/Programmers' 카테고리의 다른 글
  • [프로그래머스, Java] 두 개 뽑아서 더하기
  • [프로그래머스, Java] 시저 암호
  • [프로그래머스, Java] 최소직사각형
  • [프로그래머스, Java] 이상한 문자 만들기
devoks
devoks
꾸준히 작성해보자!
  • devoks
    ok's 개발 블로그
    devoks
  • 전체
    오늘
    어제
    • 분류 전체보기 (110) N
      • Backend (15)
        • SpringBoot (0)
        • Java (15)
      • Cs (17) N
      • Infra (0)
        • AWS (0)
        • Docker (0)
      • CodingTest (78)
        • Programmers (78)
  • 링크

    • My GitHub
  • 인기 글

  • 태그

    switch
    StringTokenizer
    BufferedReader
    json
    codingtest
    java
    BufferedWriter
    programmers
    CS
    effectivejava
  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
devoks
[프로그래머스, Java] 가장 가까운 같은 글자
상단으로

티스토리툴바