Python study/Programmers Lv0

[Programmers] 대소문자 바꿔서 출력하기

김쿼드 2023. 7. 15. 14:02

문제 설명

영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.

제한사항

  • 1 ≤ str의 길이 ≤ 20
    • str은 알파벳으로 이루어진 문자열입니다.

문제 풀이

접근 전략

문자열을 순회하면서 각 문자가 대문자인지 소문자인지 확인. 그 후 해당 문자를 반대로 바꿔 새 문자열에 추가하기.

이때 Python의 isupper(), islower(), lower(), upper() 같은 문자열 메소드를 이용해서 변경함.


코드

str = input()
result = ""
for char in str:
    if char.isupper():
       result += char.lower()
    elif char.islower():
       result += char.upper()

print(result)


결과 및 해석

위의 코드는 입력 문자열 str를 순회하면서 각 문자 char가 대문자인지 소문자인지 확인함. 만약 대문자라면 소문자로, 소문자라면 대문자로 변환하여 새 문자열 result에 추가함. 아스키코드로 할 수도 있고 swapcase()도 있지만 별로 좋은 방법은 아닌 것 같음.  이후 result를 출력.


해당 코드는 입력 문자열의 각 문자를 한 번씩만 방문하므로 시간 복잡도는 O(n)이고,  또한 새 문자열을 저장하기 위한 공간만 필요하므로 공간 복잡도도 O(n) 이다.