[TIL] 241210 (프로그래머스 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기)

·2024년 12월 10일

TIL

목록 보기
245/268
post-thumbnail

오늘 한 일

  • 알고리즘 코드카타
    • 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기

알고리즘 코드카타

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

문제

문자열 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라는 메서드를 모르고 있었다. 알았다면 훨씬 더 쉽게 풀었을 것 같아서 아쉬우면서도 몰랐던 걸 배우게 되어 좋다.

profile
웹 프론트엔드 개발자

0개의 댓글