프로그래머스 A 강조하기

KIMYEONGJUN·2026년 7월 4일
post-thumbnail

문제

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

문자열 myString이 주어집니다.
myString에서 알파벳 "a"가 등장하면 전부 "A"로 변환하고, "A"가 아닌 모든 대문자 알파벳은 소문자 알파벳으로 변환하여 return 하는 solution 함수를 완성하세요.

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

solution 메서드는 입력받은 문자열 myString을 한 글자씩 차례로 확인한다.
각 문자 ch가 소문자 'a'라면, 대문자 'A'로 변환하여 answer에 추가한다.
만약 문자가 대문자 알파벳('A' 이상 'Z' 이하)이고 동시에 'A'가 아니라면, 그 문자를 소문자로 변환하여 answer에 추가한다.
위 두 조건에 해당하지 않는 나머지 문자는 그대로 answer에 추가한다.
이렇게 문자열 전체를 처리한 뒤, StringBuilder에 쌓인 결과를 문자열로 변환하여 반환한다.
main 메서드에서는 두 개의 테스트 문자열을 준비하여 solution을 실행하고, 변환된 결과를 출력하도록 하였다.
출력 결과는 각 문자열 내의 소문자 'a'가 대문자 'A'로, 그리고 'A'를 제외한 대문자가 모두 소문자로 변환된 형태임을 확인할 수 있다.

코드로 구현

class Solution {
    public String solution(String myString) {
        StringBuilder answer = new StringBuilder();
        for (int i = 0; i < myString.length(); i++) {
            char ch = myString.charAt(i);
            if (ch == 'a') {
                answer.append('A');
            } else if (ch >= 'A' && ch <= 'Z' && ch != 'A') {
                answer.append(Character.toLowerCase(ch));
            } else {
                answer.append(ch);
            }
        }
        return answer.toString();
    }
}

프로그래머스 코드

package programmers;

// 프로그래머스 A 강조하기
public class Main71 {
    public static String solution(String myString) {
        StringBuilder answer = new StringBuilder();
        for (int i = 0; i < myString.length(); i++) {
            char ch = myString.charAt(i);
            if (ch == 'a') {
                answer.append('A');
            } else if (ch >= 'A' && ch <= 'Z' && ch != 'A') {
                answer.append(Character.toLowerCase(ch));
            } else {
                answer.append(ch);
            }
        }
        return answer.toString();
    }

    public static void main(String[] args) {
        String test1 = "abstract algebra";
        String test2 = "PrOgRaMmErS";

        System.out.println(solution(test1)); // AbstrAct AlgebrA
        System.out.println(solution(test2)); // progrAmmers
    }
}

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

마무리

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

profile
Junior backend developer

0개의 댓글