l로 만들기
알파벳 소문자로 이루어진 문자열 myString이 주어집니다. 알파벳 순서에서 "l"보다 앞서는 모든 문자를 "l"로 바꾼 문자열을 return 하는 solution 함수를 완성해 주세요.
1 ≤ myString ≤ 100,000
myString은 알파벳 소문자로 이루어진 문자열입니다.
💻 풀이
문자열을 다뤄야 하기 때문에 StringBuilder 를 선언해준다.
이후 반복문으로 문자열을 한 글자 씩 비교해 l 보다 앞에 있는 경우 l로 바꾼 문자열을 넣어주고,
아닌 경우 기존 문자열을 추가해주어 최종 리턴한다.
⌛ 시간 1.43ms ~ 8.75ms
public String solution1(String myString) {
StringBuilder sb = new StringBuilder();
for(int i = 0; i < myString.length(); i++) {
if(myString.charAt(i) < 'l') {
sb.append("l");
}else {
sb.append(myString.charAt(i));
}
}
return sb.toString();
}
💻 풀이
정규식을 사용해 l에서 z 까지에 포함되지 않는^ 경우 l로 변환해준다.
a-k를 조건으로도 설정 가능하다.
⌛ 시간 5.75ms ~ 17.77ms
public String solution(String myString) {
return myString.replaceAll("[^l-z]", "l");
}