Solution 1)  내 풀이
class Solution {
    public String solution(String myString, String pat) {
        String answer = "";
        
        int idx = myString.lastIndexOf(pat);
        answer = myString.substring(0, idx) + pat;
        return answer;
    }
}

 

코드 및 문제 리뷰

myString 문자열에서 pat 문자열이 해당하는 구간중 가장 긴 구간을 반환하는 문제이다.

 

myString = "abCdEFG" / pat = "dE"

처음엔 반복문을 통해 풀어보려 했으나, 복잡해져 구글링해본 결과 위와 같은 메서드들이 있었다.

idx에 lastIndexOf 메서드를 이용해 myString에서 pat이 시작되는 index를 얻어낼 수 있다. (여기선 3)

 

이후 substring을 통해 0 부터 pat idx 전 까지, 이후 + pat을 통해 문장을 완성 한다.

적다 보니 그냥

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

이렇게 했어도 됐지 싶다.

 

dE가 여러개라면? 

String myString = "AdEbCdEFdEG";
String pat = "dE";

이렇게 된 상태에서 lastIndexOf를 한다면 idx는 가장 뒤에 있는 pat인 8이 되고,

answer은 AdEbCdEFdE이 된다.

+ Recent posts