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

 

문제 설명

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


제한사항

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


입출력 예

"AbCdEFG"	"dE"	"AbCdE"
"AAAAaaaa"	"a"	"AAAAaaaa"


입출력 예 설명

입출력 예 #1
"AbCdEFG"에서 "dE"는 한 번 등장하며 처음부터 해당 위치까지 잘라내면 "AbCdE"가 됩니다. 따라서 이 문자열이 "dE"로 끝나는 가장 긴 문자열이며, "AbCdE"를 return 합니다.

입출력 예 #2
"AAAAaaaa"에서 "a"는 총 네 번 등장하며 이 중 가장 마지막에 있는 위치까지 잘라내면 "AAAAaaaa"가 됩니다. 따라서 이 문자열이 "a"로 끝나는 가장 긴 문자열이며, "AAAAaaaa"를 return 합니다.

 

나의 코드..

import java.util.*;

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

 

먼저 myString을 pat과 비교를 해가면서..

일치하는 구간까지 정한 뒤

그 정한 구간까지 answer에 대입시켜줘서 해결!

 

'Java > Algorithm' 카테고리의 다른 글

JAVA - 백준 2805 나무 자르기  (1) 2025.03.19
JAVA - 백준 1654 랜선 자르기  (0) 2025.03.19
Java - 조건에 맞게 수열 변환하기 2  (0) 2025.03.16
Java - 1로 만들기  (0) 2025.03.16
Java - 세 개의 구분자  (2) 2025.03.15