문제 풀이/프로그래머스
프로그래머스 lv0 l로 만들기
춘핑이
2023. 8. 14. 14:38
문제
알파벳 소문자로 이루어진 문자열 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% 매칭 되지 않으면 다시 뒤로 되돌아가면서 매칭을 시도한다고한다.
짧다고 좋은 것은 아닌듯 하다.