코딩테스트/프로그래머스

[Lv.0] A 강조하기

민톨이 2024. 7. 24. 00:39
728x90

📋 문제

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

 

📋 입출력 예시

 

 

📋 실패 풀이

class Solution {
    public String solution(String myString) {
        // StringBuilder 생성
        StringBuilder answer = new StringBuilder();
        
        for(int i = 0; i < myString.length(); i++){
            char currentChar = myString.charAt(i);
            if(currentChar == 'a'){
                answer.append(Character.toUpperCase(currentChar));
            } else {
                answer.append(Character.toLowerCase(currentChar));
            }
        }
        
        return answer.toString();
    }
}

 

📌 StringBuilder 

<객체 선언>

StringBuilder answer = new StringBuilder(); 

 

  • 작은따옴표('): 단일 문자(char)를 나타냄. 단일 문자 리터럴은 문자 하나를 표현하며, 이는 Java의 char 타입에 해당
  • 큰따옴표("): 문자열(String)을 나타냄. 문자열 리터럴은 문자들의 시퀀스를 표현하며, 이는 Java의 String 타입에 해당

 

근데 이 방법은 실패다 ㅡㅡ

 

📋 다른 풀이

📌 replacaeAll()

- String replaceAll(String 대체될 문자, String 대체할 문자)
class Solution {
    public String solution(String myString) {
    //어차피 a말고 소문자로 변환되어야 하니까 첨부터 다 소문자로 변환
        myString = myString.toLowerCase();
        myString = myString.replaceAll("a","A");
        return myString;
    }
}

 

1. 입출력 예시를 보며 "a" 제외한 문자들은 다 소문자임 => 그럼 첨부터 다 소문자로 변환

2. replaceAll()을 사용하여 "a"를 대문자 "A"로 바꿔버림 

 

Good