특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 Lv. 0

박영준·2023년 6월 8일
0

코딩테스트

목록 보기
234/300
class Solution {
    public String solution(String myString, String pat) {
        String answer = "";
        return answer;
    }
}

해결법

방법 1

class Solution {

    public String solution(String myString, String pat) {
        String answer = "";

        for (int i = myString.length(); i >= 0; i--) {
            myString = myString.substring(0, i);
            
            if(myString.endsWith(pat)) {
                return myString;
            } 
        }
        return answer;
    }
}
  • 역순으로 읽기

  • myString = myString.substring(0, i);

    • myString 값을 바로 myString에 저장
      -> 갱신하듯이, for문을 돌릴 때마다 매번 새로운 값이 저장됨
  • endsWith

  • if문 에서

    • 끝 문자가 pat과 동일하지 않을 때까지 계속 해서 값이 갱신됨

방법 2

class Solution {
    public String solution(String myString, String pat) {
        String answer = "";

        int idx = myString.lastIndexOf(pat);

        answer = myString.substring(0, idx) + pat;

        return answer;
    }
}
  • lastIndexOf() : 해당 문자열에서 특정 문자가 마지막으로 등장하는 위치의 인덱스를 반환

    참고: String 클래스

방법 3

class Solution {
    public String solution(String myString, String pat) { 
        return myString.substring(0, myString.lastIndexOf(pat) + pat.length());
    }
}
  • 방법 2를 간소화

특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 Lv. 0

profile
개발자로 거듭나기!

0개의 댓글