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