주어진 문자열을 뒤집고 각 문자의 대소문자를 반대로 바꾸어 출력하는 프로그램을 작성한다. 문자열의 길이는 최대 100이다.
입력 예시
첫째 줄에 문자열이 주어진다.
출력 예시
문자열을 뒤집은 뒤 각 문자의 대소문자를 반대로 바꾼 결과를 출력한다.
예제 테스트케이스
예제 1
입력 예시
출력 예시
HelloWorld
DLROwOLLEh
예제 2
입력 예시
출력 예시
C++Programming
GNIMMARGORp++c
코드
S = input()
result = ""
for ch in S[::-1]:
if ch.isupper():
result += ch.lower()
else:
result += ch.upper()
print(result)
1. 코드 동작 설명
- 문자열을 입력받는다.
- 슬라이싱을 이용하여 문자열을 뒤집는다.
- 뒤집힌 문자열을 한 글자씩 순회한다.
- 각 문자의 대소문자를 확인하여 반대로 변환한다.
- 변환된 문자를 누적하여 새로운 문자열을 생성한다.
- 최종 결과를 출력한다.
2. 문법 설명
input()
S = input()
- 문자열을 입력받는 함수
- 사용 형태:
input()
슬라이싱
S[::-1]
- 문자열을 뒤집는 방법
- [시작:끝:간격]에서 간격을 -1로 설정
- 사용 형태:
문자열[::-1]
반복문
for ch in S[::-1]:
- 문자열의 각 문자를 하나씩 순회
- 사용 형태:
for 변수 in iterable:
isupper()
ch.isupper()
- 문자가 대문자인지 확인하는 함수
- 사용 형태:
문자.isupper()
lower()
ch.lower()
- 문자를 소문자로 변환
- 사용 형태:
문자.lower()
upper()
ch.upper()
- 문자를 대문자로 변환
- 사용 형태:
문자.upper()
문자열 누적
result += ch.lower()
- 문자열 뒤에 문자를 이어 붙임
- 사용 형태:
문자열 += 값
출력
print(result)
- 결과 문자열을 출력
3. 실수 포인트
슬라이싱 없이 순회
for ch in S:
- 문자열이 뒤집히지 않음
대소문자 변환 반대로 작성
if ch.isupper():
result += ch.upper()
- 변환이 이루어지지 않음
= 대신 += 누락
result = ch.lower()
- 이전 값이 사라져 누적되지 않음
출력 형식 오해
print(f"{result}")
- 가능하지만 불필요한 표현
4. 핵심 정리
- [::-1]로 문자열을 뒤집고, isupper()로 대소문자를 판단하여 변환한다.
'Univ > Python Programming' 카테고리의 다른 글
| [문제 15] 문자열에서 모음과 자음 세기 - Python 풀이 (1) | 2026.04.16 |
|---|---|
| [문제 14] 배열에서 짝수와 홀수 구분하기 - Python 풀이 (0) | 2026.04.16 |
| Python `::` 슬라이싱 문법 (0) | 2026.04.15 |
| [문제 12] 주어진 숫자 뒤집기 - Python 풀이 (0) | 2026.04.15 |
| Python `sort()`와 `sorted()`의 차이 (0) | 2026.04.15 |