프로그래머스 l로 만들기

KIMYEONGJUN·2026년 8월 13일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

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

내가 이 문제를 보고 생각해본 부분

Main111 클래스 내에 solution 메서드를 정의했다. 이 메서드는 입력 문자열 myString을 받아 각 문자를 하나씩 검사한다.
StringBuilder 객체 answer를 생성하여 결과 문자열을 효율적으로 만든다.
반복문을 통해 문자열의 각 문자 c를 차례로 가져오는데, 만약 해당 문자가 'l'보다 앞서면 'l'을 answer에 추가한다.
그렇지 않으면 원래 문자를 그대로 answer에 추가한다.
모든 문자를 검사한 후 최종적으로 answer.toString()을 반환한다.
main 메서드 내에서 Main111 객체 sol을 생성한다.
미리 정해진 두 개의 입력 문자열 input1, input2에 대해 각각 solution 메서드를 호출해 결과를 얻는다.
결과를 출력하여 예상되는 문자열 ("llllvwxyz", "llnnllllmm")과 일치하는지 확인한다.

코드로 구현

class Solution {
    public String solution(String myString) {
        StringBuilder answer = new StringBuilder();
        for (int i = 0; i < myString.length(); i++) {
            char c = myString.charAt(i);
            if (c < 'l') {
                answer.append('l');
            } else {
                answer.append(c);
            }
        }
        return answer.toString();
    }
}

프로그래머스 코드

package programmers.programmers2;

// 프로그래머스 l로 만들기
public class Main111 {
    public String solution(String myString) {
        StringBuilder answer = new StringBuilder();
        for (int i = 0; i < myString.length(); i++) {
            char c = myString.charAt(i);
            if (c < 'l') {
                answer.append('l');
            } else {
                answer.append(c);
            }
        }
        return answer.toString();
    }

    // 실행 테스트용 main 메서드
    public static void main(String[] args) {
        Main111 sol = new Main111();

        // 테스트 케이스 1
        String input1 = "abcdevwxyz";
        String output1 = sol.solution(input1);
        System.out.println(output1);  // 예상: llllvwxyz

        // 테스트 케이스 2
        String input2 = "jjnnllkkmm";
        String output2 = sol.solution(input2);
        System.out.println(output2);  // 예상: llnnllllmm
    }
}

위에 있는 코드를 변경한 코드

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글