코딩테스트

[인프런 자바 알고리즘 문제풀이] 2. 대소문자 변환

셩리둥절 2022. 9. 20. 00:27
반응형

대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요.


저는 1차로 이렇게 작성하였고 통과했습니다.

String이 지속적으로 변경된다고 생각하여 StringBuffer를 사용하였는데 isLowerCase라는 편한 함수도 있다는것....

import java.util.Scanner;

public class Main {
    public StringBuffer solution(String str) {
        StringBuffer bf = new StringBuffer();
        for(char x : str.toCharArray()) {
            if( 65 <= x && x <= 90 ) {
                x += 32;
                bf.append(x);
            } else if(97 <= x  && x <= 122) {
                x -= 32;
                bf.append(x);
            }
        }

        return bf;
    }

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

    }
}

방법 2

String 사용 시 answer += 될때마다 새로운 메모리가 할당됩니다!

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 C = new Main();
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        System.out.println(C.solution(str));

    }
}

String VS StringBuffer VS StringBuilder 차이 블로그 링크

https://ifuwanna.tistory.com/221

반응형