영어 알파벳으로 이루어진 문자열이 주어졌을 때, 각 글자의 대소문자를 서로 반전시켜야 하는 경우가 있습니다. 즉, 대문자는 소문자로, 소문자는 대문자로 변환하는 것이죠.
문제 이해하기
예를 들어 입력 문자열이 s = "PrograMMinG"라면, 출력 결과는 pROGRAmmINg이 됩니다. 원래 대문자였던 'P', 'M', 'M', 'G'는 소문자로 바뀌고, 나머지 소문자들은 모두 대문자로 변환됩니다.
해결 접근 방법
이 문제는 다음과 같은 단계로 해결할 수 있습니다.
- 빈 문자열
ret을 초기화합니다. - 입력 문자열
s의 각 글자를 하나씩 순회합니다.- 현재 글자가 대문자라면 → 해당 글자의 소문자 형태를
ret에 추가합니다. - 그렇지 않다면(소문자라면) → 해당 글자의 대문자 형태를
ret에 추가합니다.
- 현재 글자가 대문자라면 → 해당 글자의 소문자 형태를
- 모든 글자를 처리한 후 최종 결과인
ret을 반환합니다.
구현 예제 코드
아래 파이썬 코드를 통해 실제 구현 과정을 확인해 보겠습니다.
def solve(s):
ret = ''
for letter in s:
if letter.isupper():
ret += letter.lower()
else:
ret += letter.upper()
return ret
s = "PrograMMinG"
print(solve(s))실행 결과 확인
입력:
"PrograMMinG"
출력:
pROGRAmmINg
추가 팁: swapcase() 메서드 활용
사실 파이썬에서는 내장 문자열 메서드인 swapcase()를 사용하면 위 로직을 한 줄로 간단하게 처리할 수 있습니다.
s = "PrograMMinG" print(s.swapcase()) # 출력: pROGRAmmINg
다만 직접 구현하는 방식은 문자열 처리와 조건문의 동작 원리를 학습하는 데 큰 도움이 되므로, 알고리즘 연습 목적이라면 두 가지 방법 모두 익혀두는 것을 추천합니다.