[programmers] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 - Java

문자열 myString의 부분 문자열 중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 반환하는 solution 함수를 구현하는 문제입니다. 주어진 예시를 통해 문제의 설명과 제한사항, 입출력 예시, 핵심 키워드, 그리고 결론을 확인할 수 있습니다.
Jan 16, 2024
[programmers] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 - Java

문제 설명

문자열 myString과 pat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요.

제한사항

  • 5 ≤ myString ≤ 20
  • 1 ≤ pat ≤ 5
    • pat은 반드시 myString의 부분 문자열로 주어집니다.
  • myString과 pat에 등장하는 알파벳은 대문자와 소문자를 구분합니다.

입출력 예

myString
pat
result
"AbCdEFG"
"dE"
"AbCdE"
"AAAAaaaa"
"a"
"AAAAaaaa"

입출력 예 설명

입출력 예 #1
  • "AbCdEFG"에서 "dE"는 한 번 등장하며 처음부터 해당 위치까지 잘라내면 "AbCdE"가 됩니다. 따라서 이 문자열이 "dE"로 끝나는 가장 긴 문자열이며, "AbCdE"를 return 합니다.
입출력 예 #2
  • "AAAAaaaa"에서 "a"는 총 네 번 등장하며 이 중 가장 마지막에 있는 위치까지 잘라내면 "AAAAaaaa"가 됩니다. 따라서 이 문자열이 "a"로 끝나는 가장 긴 문자열이며, "AAAAaaaa"를 return 합니다.

solution.java

import java.util.Arrays; class Solution { public String solution(String myString, String pat) { String[] myString_arr = myString.split(""); myString_arr = Arrays.copyOfRange(myString_arr, 0, myString.lastIndexOf(pat)+pat.length()); return String.join("", myString_arr); } }
 

핵심 키워드

  • lastIndexOf() 메소드는 해당 문자열 내에서 파라미터로 주어진 문자열이 마지막으로 등장한 위치의 인덱스를 반환한다.
  • Arrays.copyOfRange() 메소드로 배열의 복사본을 생성할 수 있다.
  • String.join() 메소드를 통해 지정된 구분 기호의 복사본과 함께 결합된 문자열을 복사할 수 있다.
 

결론!

해당 문제를 풀면서 lastIndexOf(), String.join() 메소드를 활용하는 방법을 익힐 수 있었다.
 
Share article

👨🏻‍💻DriedPollack's Blog