문제 설명
문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 <= my_string의 길이 <= 1,000
- my_string은 영어 대문자와 소문자로만 구성되어 있습니다.
입출력 예
my_string | result |
"cccCCC" | "CCCccc" |
"abCdEfghlJ" | "ABcDeFGHiJ" |
class Solution {
public String solution(String my_string) {
String answer = "";
for (char c: my_string.toCharArray()) {
if (c >= 97 && c <= 122) {
answer += (char)(c - 32);
} else if (c >= 65 && c <= 90) {
answer += (char)(c + 32);
}
}
return answer;
}
}
이 문제는 아스키 코드를 사용하여 풀었습니다. 아스키 코드에서 영어의 대문자는 65~90, 소문자는 97~122 입니다. 영어의 대문자와 소문자 간의 간격은 32로, 각각 32를 더하거나 빼면 대문자와 소문자를 정확히 바꿀 수 있는 것입니다. 따라서 if문을 통한 조건식으로 값을 반환하였습니다.
아스키 코드를 사용하기 위해서 값을 할당하기 전에 char형으로 캐스팅을 해주었습니다. 반대로 문자의 아스키 코드를 얻기 위함이라면 int로 캐스팅하여 원하는 아스키 코드의 숫자값을 얻을 수 있을 것입니다.
만약 아스키 코드가 기억나지 않는다면 조건식에서 (c >= 97 && c <= 122) 대신 (c >= 'a' && c <= 'z')로 써도 문제를 푸는 데에는 무방합니다.
'프로그래머스 > Lv. 0(코딩테스트 입문)' 카테고리의 다른 글
[프로그래머스 코딩테스트] 약수 구하기(Java) (0) | 2023.04.02 |
---|---|
[프로그래머스 코딩테스트] 인덱스 바꾸기(Java) (0) | 2023.04.02 |
[프로그래머스 코딩테스트] 암호 해독(Java) (0) | 2023.04.02 |
[프로그래머스 코딩테스트] A로 B 만들기(Java) (0) | 2023.04.02 |
[프로그래머스 코딩테스트] 최댓값 만들기(2)(Java) (0) | 2023.04.01 |