반응형
`대문자와 소문자`
문제 설명
문자열 my_string이 매개변수로 주어질 때,
대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return 하도록 solution 함수를 완성해 주세요.
입출력 예 #1
- 소문자는 대문자로 대문자는 소문자로 바꾼 "CCCccc"를 return 합니다.
입출력 예 #2
- 소문자는 대문자로 대문자는 소문자로 바꾼 "ABcDeFGHij"를 return 합니다.
java code
class Solution {
public StringBuffer solution(String my_string) {
StringBuffer answer = new StringBuffer();
for (int i = 0; i < my_string.length(); i++) {
if (my_string.charAt(i) >='A'&& my_string.charAt(i) <='Z'){
answer.append(Character.toLowerCase(my_string.charAt(i)));
}
else if (my_string.charAt(i) >='a'&& my_string.charAt(i) <='z'){
answer.append(Character.toUpperCase(my_string.charAt(i)));
}
}
return answer;
}
}
- my_string.charAt(i) >='A'&& my_string.charAt(i) <='Z'
- my_string의 값이 A보다 크고 Z보다 작으면 즉 대문 자 구별 조건문
- answer.append(Character.toLowerCase(my_string.charAt(i)));
- 소문자로 변환해서 대입
- else if 문은 위와 반대
- 코드가 다 반복하면 대문자를 소문자로 소문자를 대문자로 바꿔준다.
- else if 문은 else로 대체해도 무방하다.
다른 풀이
class Solution {
public StringBuffer solution(String my_string) {
StringBuffer answer = new StringBuffer();
for (int i = 0; i < my_string.length(); i++) {
char c = my_string.charAt(i);
if(Character.isLowerCase(c)){
answer.append(Character.toUpperCase(c));
}else if(Character.isUpperCase(c)){
answer.append(Character.toLowerCase(c));
}
}
return answer;
}
}
class Solution {
public StringBuffer solution(String my_string) {
StringBuffer answer = new StringBuffer();
for (int i = 0; i < my_string.length(); i++) {
char c = my_string.charAt(i);
answer.append(Character.isLowerCase(c) ? Character.toUpperCase(c) : Character.toLowerCase(c));
}
return answer;
}
}
대문자를 소문자로 소문자를 대문자로 만 바꿔주면 되는 간단한 문제이지만
메서드를 사용법을 모른다면 지옥이 될 수 있다...
자바를 할 때는 정말 타입에 대한 신경을 많이 써야 하는 것 같다...
python code
def solution(my_string):
answer = ''
for i in my_string:
if i >='A' and i<='Z':
answer += i.lower()
else:
answer += i.upper()
return answer
다른 풀이
def solution(my_string):
return my_string.swapcase()
파이썬은 참 간결해서 좋으면서 헷갈림이 더 심한 경우도 있는 것 같다.....
반응형
'algorithm' 카테고리의 다른 글
[프로그래머스]가위 바위 보 - java, python (0) | 2023.03.03 |
---|---|
[프로그래머스]세균 증식 - java, python (0) | 2023.03.03 |
[프로그래머스]문자열 정렬하기 (1) - java, python (0) | 2023.03.03 |
[프로그래머스]중복된 숫자 개수 - java, python (0) | 2023.03.03 |
[프로그래머스]암호 해독 - java, python (0) | 2023.03.01 |
댓글