문자열 myString과 pat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요.
function solution(myString, pat) {
let result = ""
for (let i=0; i<=myString.length-pat.length; i++){
if (myString.slice(i,i+pat.length)===pat){
result = myString.slice(0,i+pat.length)
}
}
return result;
}
반복문을 통해 현재 요소에서 pat의 길이만큼 slice한 요소가 pat과 같을 경우 result를 처음부터 방금 발견한 pat이 나올때까지 slice한 문자열로 설정한다. 가장 긴 부분 문자열을 찾기위해서는 찾자마자 return을 하면 안 되기에, 반복문을 계속 돌려 나중에 또 pat이 나오면 해당하는 부분 문자열로 설정하고 반복문이 끝난 후 result를 return한다.
const solution = (str, pat) => str.substring(0, str.lastIndexOf(pat)) + pat
lastIndexOf라는 메서드를 모르고 있었다. 알았다면 훨씬 더 쉽게 풀었을 것 같아서 아쉬우면서도 몰랐던 걸 배우게 되어 좋다.