목차
#1 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기
문제 설명
문자열 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 합니다.
#2 알고리즘 및 코드
public class Main {
public static void main(String[] args) {
String myString = "AAAAaaaa";
String pat = "a";
Solution sl = new Solution();
System.out.println(sl.solution(myString, pat));
}
}
class Solution {
public String solution(String myString, String pat) {
int len = 0;
for(int i = 0; i < myString.length(); i++){
if(myString.substring(i).contains(pat)){
len = i;
}else{
break;
}
}
len += pat.length();
return myString.substring(0, len);
}
}
public class Main {
public static void main(String[] args) {
String myString = "AAAAaaaa";
String pat = "a";
Solution sl = new Solution();
System.out.println(sl.solution(myString, pat));
}
}
class Solution {
public String solution(String myString, String pat) {
int myString_index = myString.lastIndexOf(pat);
return myString.substring(0, myString_index + pat.length());
}
}
'JAVA > 프로그래머스 코딩 기초 트레이닝' 카테고리의 다른 글
[프로그래머스, LV.0] ad 제거하기 (0) | 2024.01.06 |
---|---|
[프로그래머스, LV.0] 문자열이 몇 번 등장하는지 세기 (2) | 2024.01.06 |
[프로그래머스, LV.0] A 강조하기 (0) | 2024.01.05 |
[프로그래머스, LV.0] 배열에서 문자열 대소문자 변환하기 (0) | 2024.01.05 |
[프로그래머스, LV.0] 원하는 문자열 찾기 (1) | 2024.01.05 |