본문 바로가기
코테 준비(with 프로그래머스)

프로그래머스 day1 - 대소문자 바꿔서 출력하기

by jeong11 2023. 10. 23.
반응형

 

어이없이 틀렸는데 헤맸다. 

문제 설명

영어 알파벳으로  이루어진 문자열 str이 주어집니다.

각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해보세요. 

입출력 예

입력 #1
aBcDeFg
출력 #1
AbCdEf

 

*내가 짠 코드* => 정답 

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        
        String answer = "";
        
        for(int i=0; i<a.length(); i++){
            String tmp = a.charAt(i) +"";
            
            if(tmp.equals(tmp.toUpperCase())){
                answer += tmp.toLowerCase();
            } else {
                answer += tmp.toUpperCase();
            }    
        }
        System.out.print(answer); 
    }
}

 

- 내가 빠트린 점 : public staic void

return이 없어야하는데 return answer; 적고 

에러 : Solution.java:19: error: incompatible types: unexpected return value
        return answer; 

왜 해당 에러가 왜 나오지 하고 있었다. 이클립스로 디버깅했으면 해결됬을 문제ㅠ 

 

 

 

다른 분들  풀이보니 Character로 푸는 방법도 있던데 그 방법도 정리해보았다. 

import java.util.*;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        String answer = "";

        //Stack <Character> stack = new Stack <> ();

        for(Character c : a.toCharArray()){
            if(Character.isUpperCase(c)){
                //stack.push(Character.toLowerCase(c));
                answer += Character.toLowerCase(c);
            }
            else if(Character.isLowerCase(c)){
                //stack.push(Character.toUpperCase(c));
                answer += Character.toUpperCase(c);
            }
        } 
        System.out.println(answer);
    }
}

 

 

반응형