Algorithms/프로그래머스

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

LEFT 2023. 4. 26. 13:30

<문제 제시>

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

<예시 입출력>


 

<문제 해결 과정>

적절한 메서드를 사용하여 대문자를 소문자로 바꾸고, 소문자를 대문자로 바꾸는 과정이 필요하였다.

아스키코드를 더하고 빼는 방식으로도 구할 수 있지만 이번 풀이에서는 Character.isLowerCase() 와

Character.isUpperCase() 메서드를 사용하여 풀어보았다.

if(Character.isLowerCase(my_string.charAt(i)) == true){
    answer += Character.toUpperCase(my_string.charAt(i));
}

isLowerCase의 반환값은 boolean 타입이므로 my_string의 문자 인덱스가 소문자인지 검사하여 맞으면

answer에 toUpperCase() 메서드를 통하여 소문자를 대문자로 바꾼 후 누적시킨다.

else if(Character.isUpperCase(my_string.charAt(i)) == true){
    answer += Character.toLowerCase(my_string.charAt(i));
}

반대의 경우도 마찬가지이다.


<전체코드>

public class Upper_Lower {

	 public static String solution(String my_string) {
        String answer = "";
        
        for(int i = 0; i < my_string.length(); i++){
            if(Character.isLowerCase(my_string.charAt(i)) == true){
                answer += Character.toUpperCase(my_string.charAt(i));
            }
            else if(Character.isUpperCase(my_string.charAt(i)) == true){
                answer += Character.toLowerCase(my_string.charAt(i));
            }
        }
        
        return answer;
    }
	
	public static void main(String[] args) {
		String my_string = "cccCCC";
		
		System.out.println(solution(my_string));
	}

}

대문자와 소문자를 다루는 알고리즘 문제가 많은 것 같았다. 

Character 클래스의 다양한 메서드를 숙련시켜야할 것 같다.


문제링크)
https://school.programmers.co.kr/learn/courses/30/lessons/120893

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr