학이시습

[프로그래머스] 0단계_특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (Java) 본문

Coding test/Programmers

[프로그래머스] 0단계_특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (Java)

dbswndud 2025. 4. 8. 23:15


문제 링크

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 


문제 설명

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

 

작성한 코드

class Solution {
    public String solution(String myString, String pat) {
        String answer = "";
        
        for (int i = myString.length() - 1; i >= 0; i--) {
            String str = myString.substring(0, i + 1);
            if (str.endsWith(pat)) {
                answer = str;
                break;
            }
        }

        return answer;
    }
}

 

풀이

  • 문자열의 처음부터 i + 1까지 문자열을 자릅니다.
    • 만약 문자열(str)이 pat으로 끝난다면
      • answer에 그 문자열(str)을 넣고 for문을 끝냅니다
    • 아니면 계속 반복! 문자열의 끝 -1부터 0까지 반복합니다. (문자열을 자르기 위해)
  • answer을 리턴해줍니다

 

사용한 함수

substring()

문자열의 특정 부분을 잘라내는 함수

str.substring(startIndex);  // 시작 인덱스부터 끝까지 반환
str.substring(startIndex, endIndex);  // 시작 인덱스부터 끝 인덱스까지 반환

 

endsWith()

특정 문자열로 끝나는지 확인하는 함수

str.endsWith("a");  // a로 끝나면 true 아니면 false

 

실행 결과