[프로그래머스/Java] Lv.0 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기

febCho·2024년 3월 14일
0

코딩테스트

목록 보기
81/253
post-thumbnail

문제

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

- 제한사항

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

풀이

ArrayList 객체에 myString의 부분 문자열들을 담는다. 그다음, pat을 포함하는 길이가 가장 긴 문자열을 찾기 위해 루프를 거꾸로 돌면서 endsWith()로 해당 문자열을 찾아준다.

단, pat의 길이가 1일 때는 break;를 활용해 for문을 바로 빠져 나와야한다는 점이다.

import java.util.ArrayList;

class Solution {
    public String solution( String myString, String pat ) {
        ArrayList<String> list = new ArrayList<>();
        String answer = "";
        
        for (int i=0;i<myString.length();i++) {
            list.add(myString.substring(0,i + 1));
        }
        
        for(int i=list.size()-1;i>=0;i--){
            if(list.get(i).endsWith(pat)){
                answer = list.get(i);
                if(pat.length() == 1) break;
            }
        }
        
        return answer;
    }
}

결과

profile
Done is better than perfect.

0개의 댓글