inblog logo
|
silver
    알고리즘문제풀기

    [알고리즘문제풀기] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기

    silver's avatar
    silver
    Apr 19, 2025
    [알고리즘문제풀기] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기
    Contents
    문제내가 작성한 정답다른 사람들의 정답

    문제

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

    내가 작성한 정답

    바로 return하기

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

    StringBuilder

    class Solution { public String solution(String myString, String pat) { StringBuilder sb = new StringBuilder(); int len = myString.length(); for(int i=len; i>0; i--){ if(myString.substring(0,i).endsWith(pat)) { sb.append(myString.substring(0,i)); break; } break; } return sb.toString(); } }

    endsWith 사용하지 않고 풀기

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

    다른 사람들의 정답

    lastIndexOf

    : 해당 글자가 시작되는 위치의 첫 인덱스를 출력
    class Solution { public String solution(String myString, String pat) { return myString.substring(0, myString.lastIndexOf(pat) + pat.length()); } }
     
    Share article

    silver

    RSS·Powered by Inblog