문제
알파벳 소문자로 이루어진 문자열 myString이 주어집니다. 알파벳 순서에서 "l"보다 앞서는 모든 문자를 "l"로 바꾼 문자열을 return 하는 solution 함수를 완성해 주세요. '알파벳 엘이다.'
풀이
단순하게 char배열로만들어서 풀었다.
public class i로만들기 {
public String solution(String myString) {
char[] arr = myString.toCharArray();
for (int i = 0; i < arr.length; i++) {
if (arr[i] < 'l') {
arr[i] = 'l';
}
}
String answer = new String(arr);
return answer;
}
}다른사람 풀이
myString.replaceAll("[^l-z]", "l");정규식을 통해 풀었다.
내 것중에 오래걸리는게 있어서 이걸 넣어보기도 했는데
이게 더 오래걸린다.
하지만, 알고리즘 성능에는 그다지 좋지가 않습니다. 그 이유는 "백트래킹" 때문이라고 한다.
정규식은 왼쪽에서 오른쪽으로 탐색을 하는데 100% 매칭 되지 않으면 다시 뒤로 되돌아가면서 매칭을 시도한다고한다.
짧다고 좋은 것은 아닌듯 하다.
'문제 풀이 > 프로그래머스' 카테고리의 다른 글
| 프로그래머스 lv1 SQL 나이 정보가 없는 회원 수 구하기 (0) | 2023.08.24 |
|---|---|
| 프로그래머스 lv0 이차원배열대각선순회하기 (0) | 2023.08.23 |
| 프로그래머스 lv0 뒤에서 5등위로 (0) | 2023.08.13 |
| 프로그래머스 lv0 공백으로구분하기2 (0) | 2023.08.10 |
| 프로그래머스 lv0 글자 이어 붙여 문자열 만들기 (0) | 2023.08.10 |