문제 설명
영어 알파벳으로 이루어진 문자열 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) 이다.
'Python study > Programmers Lv0' 카테고리의 다른 글
[Programmers] 배열 만들기 2 (0) | 2023.07.23 |
---|---|
[Programmers] 수열과 구간 쿼리 2 (0) | 2023.07.19 |
[Programmers] 등차수열의 특정한 항만 더하기 (0) | 2023.07.19 |
[Programmers] 코드 처리하기 (0) | 2023.07.16 |
[Programmers] 조건 문자열 (0) | 2023.07.15 |