Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Tags more
Archives
Today
Total
관리 메뉴

luke

[프로그래머스] - 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (Java/자바) 본문

알고리즘문제/프로그래머스(Java)

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

luke-king 2026. 2. 7. 16:45

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

 

프로그래머스

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

programmers.co.kr

 

 

 

 

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

 

풀이.


class Solution {
    public String solution(String myString, String pat) {
        int idx = myString.lastIndexOf(pat);
        
        return myString.substring(0, idx + pat.length());
    }
}

이번 문제는 프로그래머스 "특정 문자열로 끝나는 가장 긴 부분 문자열 찾기" 문제다.

문제는 주어진 myString의 문자열에서 pat의 문자열까지 나오게 하면 된다. 하지만 두 번째 답처럼 AAAAaaaa 일 경우 AAAAa에서 끝나지 않고 마지막까지 나오게 해 주는 걸 생각해줘야 한다. 그럼 바로 풀이해보겠다.

 

1. myString문자에서 주어진 pat의 값이 있는 인덱스를 찾아 주기 위해 lastIndexOf() 함수를 사용한다.

(1번째 답안을 예시로 들자면 idx 값은 3이 나오게 된다. dE는 d까지의 인덱스를 반환해주기 때문이다.)

 

2. return 값으로 substring()을 사용해 myString의 문자열 0번 인덱스부터 pat의 값의 위치 index 값 + pat의 길이만큼 해주면 끝이다.

(1번째 답안을 예시로 들자면 (0, 3 + 2) => (0, 5) 즉 AbCdE 값이 나온다)