Shiny Sky Blue Star

백준 문제 풀이/백준 (JAVA)

JAVA 백준 2744 대소문자 바꾸기 (문자열)

gamja00 2025. 5. 1. 19:00

 

https://www.acmicpc.net/problem/2744


문제

  1. 첫째 줄에 영어 소문자와 대문자로만 이루어진 단어 word ( 1 <= word.length() <= 100 ) 이 입력된다.
  2. 입력받은 단어를 대문자를 소문자로, 소문자는 대문자로 바꾸어 출력하라.

 

정답 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String word = br.readLine();

        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < word.length(); i++) {
            if (Character.isLowerCase(word.charAt(i))) {
                sb.append(Character.toUpperCase(word.charAt(i)));
            }else{
                sb.append(Character.toLowerCase(word.charAt(i)));
            }
        }

        System.out.println(sb);
    }
}

 

Character의 함수를 잘 이용하면 쉽게 풀리는 문제이다.

Character의 함수를 이용하지 않으려면 아스키코드를 이용하여 대문자와 소문자의 범위를 지정하여 구분하여 해당 문자의 아스키코드 값에서 일정한 수를 더하거나 빼주면 변환이 가능할 것 같다.