728x90
https://school.programmers.co.kr/learn/courses/30/lessons/181872
문제설명
문자열 myString과 pat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요.
제한사항
- 5 ≤ myString ≤ 20
- 1 ≤ pat ≤ 5
- pat은 반드시 myString의 부분 문자열로 주어집니다.
- myString과 pat에 등장하는 알파벳은 대문자와 소문자를 구분합니다.
풀이
이문제는 문자열을 뒤에서 부터 해당 문자열을 찾아서 인덱스를 리턴후 문자열을 자르기하면 되는 문제입니다!
1. 단순구현
class Solution {
public String solution(String myString, String pat) {
int len = pat.length()-1;
String answer="";
for(int i=myString.length()-1;i>=0;i--){
if(myString.charAt(i)==pat.charAt(len)){
len--;
}else{
len = pat.length()-1;
}
if(len ==-1){
answer = myString.substring(0, i+pat.length());
break;
}
}
return answer;
}
}
2. 마지막 인덱스 찾아서 반환하는 메소드 사용(단순구현한 내용을 메소드대체)
class Solution {
public String solution(String myString, String pat) {
int len = myString.lastIndexOf(pat);
String answer=myString.substring(0,len+pat.length());
return answer;
}
}
들어간 메소드 정리
String.substring(int a,int b) String의 index a에서부터 index b의이전(a~b-1)까지 문자열 반환
String.substring(int a) : String의 index a에서부터 끝까지 문자열 반환
String.lastIndexOf(String str) :str을 String의 뒤에서부터 탐색하여 맨처음으로 나오는 index를 리턴.
728x90
'==4. 프로그래머스 & 코테문제== > Java 문제 풀이' 카테고리의 다른 글
[Java/프로그래머스 LV.0] 코딩 기초 트레이닝/배열의 원소 삭제하기 (0) | 2024.08.10 |
---|---|
[Java/프로그래머스 LV.0] 코딩 기초 트레이닝/문자열을 정수로 변환하기 (0) | 2024.08.03 |
[Java/프로그래머스 LV.0] 코딩 기초 트레이닝/ ad 제거하기 (0) | 2024.07.22 |
[Java/프로그래머스 LV.0] 코딩 기초 트레이닝/왼쪽 오른쪽 (0) | 2024.07.08 |
[Java/프로그래머스 LV.0] 코딩 기초 트레이닝/홀수 vs 짝수 (0) | 2024.07.07 |
댓글