[프로그래머스][Java]대문자와 소문자 - 120893

·2025년 9월 8일
0

코딩테스트

목록 보기
3/16

[level 0] 대문자와 소문자 - 120893

문제 링크

문제 설명

문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return하도록 solution 함수를 완성해주세요.


제한사항
  • 1 ≤ my_string의 길이 ≤ 1,000
  • my_string은 영어 대문자와 소문자로만 구성되어 있습니다.

입출력 예
my_string result
"cccCCC" "CCCccc"
"abCdEfghIJ" "ABcDeFGHij"

입출력 예 설명

입출력 예 #1

  • 소문자는 대문자로 대문자는 소문자로 바꾼 "CCCccc"를 return합니다.

입출력 예 #2

  • 소문자는 대문자로 대문자는 소문자로 바꾼 "ABcDeFGHij"를 return합니다.

✅나의 문제 풀이

class Solution {
    public String solution(String my_string) {
        String answer = "";
        for (int i = 0; i< my_string.length(); i++){
            if(Character.isUpperCase(my_string.charAt(i))){             //i의 값이 대문자일경우(true 반환)
                answer += Character.toLowerCase(my_string.charAt(i));   //소문자로 변환 후 answer에 저장
            }else{
                answer += Character.toUpperCase(my_string.charAt(i));
            }
        }
        return answer;
    }
}
  • 문자열의 길이만큼 for문을 돌려서 대문자인지 소문자인지 구분하고, 대문자 소문자를 변환하는 메서드를 이용해 대소문자로 변환했다.
  • 문자열을 이어붙이면 성능상 좋지 않다고 해서 아래의 코드로 바꿔보았다.

✅참고할 문제 풀이

1. StringBuilder 사용

class Solution {
    public String solution(String my_string) {
        StringBuilder sb = new StringBuilder(my_string.length());
        for (int i = 0; i < my_string.length(); i++) {
            char c = my_string.charAt(i);
            if (Character.isUpperCase(c)) {
                sb.append(Character.toLowerCase(c));
            } else {
                sb.append(Character.toUpperCase(c));
            }
        }
        return sb.toString();
    }
}

2. char[] 사용

class Solution {
    public String solution(String my_string) {
        char[] arr = my_string.toCharArray();
        for (int i = 0; i < arr.length; i++) {
            char c = arr[i];
            arr[i] = Character.isUpperCase(c) ? Character.toLowerCase(c) : Character.toUpperCase(c);
        }
        return new String(arr);
    }
}
profile
배우고 기록하며 성장하는 백엔드 개발자입니다!

0개의 댓글