Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

David의 블로그

프로그래머스 - ㅣ로 만들기. 본문

프로그래밍/코딩

프로그래머스 - ㅣ로 만들기.

David 리 2024. 5. 25. 17:16

문제설명>

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

 

내 생각>

String변수를 for문으로 순회하여 subString()로 "l"값과 비교하여 치환해주는 로직을 생각했다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
String myString = "jjnnllkkmm";
        String answer = "";
        
        for (int i = 0; i < myString.length(); i++) {
            if (myString.substring(i, i + 1).compareTo("l"< 0
            {
                // subStr값이 "l"보다 사전순에서 앞에 있다면
                answer += "l";
            } 
            else 
            {
                answer += myString.substring(i, i + 1);
            }
        }
        System.out.println(answer);
cs

 

 

하지만,,,더 간단하고 좋은 방법이 있다.

1
2
3
4
5
6
7
// regex 표현
        String myString = "abcdevwxyz";
        String answer = "";
        
        answer = myString.replaceAll("[a-k]""l");
        
        System.out.println(answer);
cs

regex 정규표현식이다.

정규표현식을 많이 써 본적이 없는데, 연습을 해 놓아야겠다.