본문 바로가기
코딩테스트 연습

특정 문자열로 끝나는 가장 긴 부분 문자열 찾기

by 신재은👩🏼‍💻 2024. 4. 20.

문제 설명
문자열 myString과 pat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요.

제한사항
5 ≤ myString ≤ 20
1 ≤ pat ≤ 5
pat은 반드시 myString의 부분 문자열로 주어집니다.
myString과 pat에 등장하는 알파벳은 대문자와 소문자를 구분합니다.


입출력 예
myString pat result
"AbCdEFG" "dE" "AbCdE"
"AAAAaaaa" "a" "AAAAaaaa"


class Solution {
    public String solution(String myString, String pat) {
        for(int i = myString.length() - 1; i >= 0; i--) {
            if(i >= pat.length() - 1
               && myString.charAt(i) == pat.charAt(pat.length() - 1)
               && myString.substring(i - pat.length() + 1, i + 1).equals(pat)) {
                return myString.substring(0, i + 1);
            }
        }
        return "";
    }
}


이번은 내가 진짜로 잘못 풀었다.

 

class Solution {
    public String solution(String myString, String pat) {
        String answer = "";

        int idx = myString.lastIndexOf(pat);

        answer = myString.substring(0, idx) + pat;

        return answer;
    }
}

 

이런 식으로 lastIndexOf를 사용했어야 했다.

'코딩테스트 연습' 카테고리의 다른 글

2차원으로 만들기  (0) 2024.04.20
1로 만들기  (0) 2024.04.20
문자열이 몇 번 등장하는지 세기  (0) 2024.04.20
배열의 길이를 2의 거듭제곱으로 만들기  (0) 2024.04.20
한 번만 등장한 문자  (0) 2024.04.20