[프로그래머스] Java 코딩테스트 - l로 만들기

yihyun·2025년 7월 21일

코딩테스트

목록 보기
102/105
post-thumbnail

l로 만들기

✅ 문제 설명

알파벳 소문자로 이루어진 문자열 myString이 주어집니다. 알파벳 순서에서 "l"보다 앞서는 모든 문자를 "l"로 바꾼 문자열을 return 하는 solution 함수를 완성해 주세요.

✅ 제한사항

1 ≤ myString ≤ 100,000
myString은 알파벳 소문자로 이루어진 문자열입니다.

🔽 소스코드 1 (반복문 사용)

💻 풀이

  • 문자열을 다뤄야 하기 때문에 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();
	}

🔽 소스코드 2 (정규식 사용)

💻 풀이

  • 정규식을 사용해 l에서 z 까지에 포함되지 않는^ 경우 l로 변환해준다.

  • a-k를 조건으로도 설정 가능하다.

시간 5.75ms ~ 17.77ms

	public String solution(String myString) {
		
		return myString.replaceAll("[^l-z]", "l");
	}
profile
개발자가 되어보자

0개의 댓글