Java 알고리즘

[백준/Java] 2744번 대소문자 바꾸기 정답 | 코드 공개 및 해설

엘라 ELLA 2023. 1. 2. 22:02
728x90
반응형

 

 

게시글이 도움이 되었다면

[로그인]이 필요 없는 ❤ 클릭과

게시글의 광고를 클릭 해 주세요:)

 

 

문제

영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 영어 소문자와 대문자로만 이루어진 단어가 주어진다. 단어의 길이는 최대 100이다.

출력

첫째 줄에 입력으로 주어진 단어에서 대문자는 소문자로, 소문자는 대문자로 바꾼 단어를 출력한다.

 

예제 입력 1 

WrongAnswer

예제 출력 1

wRONGaNSWER

 


 

정답코드1

 

import java.util.Scanner;

public class Main {
    public String solution(String str){
        String answer = "";
        
        for (char x : str.toCharArray()){
            if (Character.isLowerCase(x)){
                answer += Character.toUpperCase(x);
            } else {
                answer += Character.toLowerCase(x);
            }
        }
        
        return answer;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        System.out.println(T.solution(str));
    }
}

 

해설

 

 제시된 글자를 받아올 수 있는 String을 밑에서 구현 했으므로 그걸 str으로 받아옵니다. 

answer은 답을 출력하기 위한 지정한 변수입니다.

 

향상된 for문을 이용해 새로운 글자들로 이루어진 Array를 만들었고 이거를 쭉 돌면서 소문자면 대문자로 변환 후 answer에 더하고(+=), 반대도 마찬가지로 대문자면 소문자로 바꿔줍니다. Character.toLowerCase()를 이용했습니다.

 

public String solution(String str){
    String answer = "";

    for (char x : str.toCharArray()){
        if (Character.isLowerCase(x)){
            answer += Character.toUpperCase(x);
        } else {
            answer += Character.toLowerCase(x);
        }
    }

    return answer;
}

 

main함수에는 Scanner를 구현해서 글자를 받을 수 있도록 했습니다.

 

public static void main(String[] args) {
    Main T = new Main();
    Scanner sc = new Scanner(System.in);
    String str = sc.next();
    System.out.println(T.solution(str));
}

 


 

정답코드2

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();

        String answer = "";

        for (char x : str.toCharArray()){
            if (Character.isLowerCase(x)){
                answer += Character.toUpperCase(x);
            } else {
                answer += Character.toLowerCase(x);
            }
        }
        System.out.println(answer);
    }
}

 

 

해설

사실 정답코드 1에서 제시된것과 전반적으로 같은 코드이고 구성만 달라졌습니다. 

다만, answer를 리턴시켜주지 않고 간단히 System.out.println()을 이용해서 출력해줬습니다.

 

 


 

게시글이 도움이 되었다면

[로그인]이 필요 없는 ❤ 눌러주세요:)

반응형