
Solution 1) 내 풀이
class Solution {
public String solution(String myString, String pat) {
String answer = "";
int idx = myString.lastIndexOf(pat);
answer = myString.substring(0, idx) + pat;
return answer;
}
}
코드 및 문제 리뷰
myString 문자열에서 pat 문자열이 해당하는 구간중 가장 긴 구간을 반환하는 문제이다.
myString = "abCdEFG" / pat = "dE"
처음엔 반복문을 통해 풀어보려 했으나, 복잡해져 구글링해본 결과 위와 같은 메서드들이 있었다.
idx에 lastIndexOf 메서드를 이용해 myString에서 pat이 시작되는 index를 얻어낼 수 있다. (여기선 3)
이후 substring을 통해 0 부터 pat idx 전 까지, 이후 + pat을 통해 문장을 완성 한다.
적다 보니 그냥
answer = myString.substring(0, idx + pat.length());
이렇게 했어도 됐지 싶다.
dE가 여러개라면?
String myString = "AdEbCdEFdEG";
String pat = "dE";
이렇게 된 상태에서 lastIndexOf를 한다면 idx는 가장 뒤에 있는 pat인 8이 되고,
answer은 AdEbCdEFdE이 된다.
'연습문제 > 프로그래머스, 기초 트레이닝' 카테고리의 다른 글
| [프로그래머스 기초_java] ad 제거하기 (0) | 2023.11.02 |
|---|---|
| [프로그래머스 기초_java] 문자열이 몇 번 등장하는지 세기 (0) | 2023.11.02 |
| [프로그래머스 기초_java] 특정한 문자를 대문자로 바꾸기 (0) | 2023.11.01 |
| [프로그래머스 기초_java] A 강조하기 (0) | 2023.11.01 |
| [프로그래머스 기초_java] 배열에서 문자열 대소문자 변환하기 (0) | 2023.11.01 |