Level. 0
문제
문자열 myString과 pat가 주어집니다.
myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요.
* 제한사항
- 5 ≤ myString ≤ 20
- 1 ≤ pat ≤ 5
pat은 반드시 myString의 부분 문자열로 주어집니다.
- myString과 pat에 등장하는 알파벳은 대문자와 소문자를 구분합니다.
풀이
class Solution {
public String solution(String myString, String pat) {
String answer = "";
int index = 0, size = pat.length();
char last = pat.charAt(size-1);
for(index=myString.length(); index>0 ;index--){
if(myString.charAt(index-1)==last){
if(myString.substring(index-size, index).equals(pat))
break;
}
}
return myString.substring(0, index);
}
}
다른 풀이
class Solution {
public String solution(String myString, String pat) {
String answer = "";
int idx = myString.lastIndexOf(pat);
answer = myString.substring(0, idx) + pat;
return answer;
}
}
문자열 위치 찾기
1. indexOf()
public int indexOf(String str)
public int indexOf(int char)
public int indexOf(String str, int fromIndex)
public int indexOf(int char, int fromIndex)
- 파라미터로 받은 문자열을 원본 문자열 앞에서부터 탐색하여 처음 발견되는 index를 반환한다.
- 두 번째 파라미터가 fromIndex가 입력되면, fromIndex부터 탐색을 시작한다.
- 문자 혹은 문자열을 찾지 못할 경우 -1을 반환한다.
2. lastIndexOf()
public int lastIndexOf(String str)
public int lastIndexOf(int char)
public int lastIndexOf(String str, int fromIndex)
public int lastIndexOf(int char, int fromIndex)
- 파라미터로 받은 문자열을 원본 문자열 뒤에서부터 탐색하여 처음 발견되는 index를 반환한다.
https://school.programmers.co.kr/learn/courses/30/lessons/181872
'Algorithm > Programers - Java' 카테고리의 다른 글
[프로그래머스(Java)] 숨어있는 숫자의 덧셈 (2) / split() 정규식 (1) | 2023.11.18 |
---|---|
[프로그래머스(Java)] 가까운 수 / Arrays.sort() (1) | 2023.11.18 |
[프로그래머스] 글자지우기 (0) | 2023.11.01 |
[프로그래머스(Java)] 중복된 숫자 개수 (0) | 2023.10.31 |
[프로그래머스(Java)] 옹알이 (1) (0) | 2023.10.29 |