코딩테스트/프로그래머스

[프로그래머스] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 자바 java

플래시🦥 2023. 8. 22.
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/181872#

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

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

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

 


 

이 문제는 substring을 만들어 보면서 해당 substring의 마지막이 pat으로 끝나는지 확인하면 된다. 

가장 긴 길이를 찾기 위해서 가장 긴 substring을 탐색하면서 만나자마자 break하는 방법을 사용했다. pat이 반복해서 나타날 경우 짧은 길이부터 찾기 시작하는 것보다 작업을 더 빨리 끝낼 수 있다. 

해당 문자열이 pat으로 끝나는지 확인하는 방법으로 endsWith()를 사용하였다. 

class Solution {
    public String solution(String myString, String pat) {
        
        int max =0; 
        
        for(int i=myString.length(); i>0;i--){
            String sub = myString.substring(0,i);
            if(sub.endsWith(pat)){
                max = i;
                break;
            }
        }        
        
        return myString.substring(0,max);
    }
}

 

728x90
반응형

댓글