문제
영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오.
조건 및 입출력
1. 첫째 줄에 영어 소문자와 대문자로만 이루어진 단어가 주어진다. 단어의 길이는 최대 100이다.
2. 첫째 줄에 입력으로 주어진 단어에서 대문자는 소문자로, 소문자는 대문자로 바꾼 단어를 출력한다.
코드 (Python 3)
# 입력부
sentence=list(input());
# 처리부
for i in range(len(sentence)):
if(ord(sentence[i])>=ord('a')):
sentence[i]=chr(ord(sentence[i])-32);
else:
sentence[i]=chr(ord(sentence[i])+32);
# 출력부
print(''.join(sentence));
#print(ord('A')-ord('a')); #대소문자 차이 32확인
풀이 과정
ord 함수와 chr 함수를 이용한다.
ord 함수는 문자를 아스키코드 번호로 변환해주는 함수이고, chr는 아스키코드 번호를 문자로 바꿔주는 함수이다.
A와 a는 32만큼의 차이를 가진다. (a가 97 / A가 65)
고로 소문자일 땐 -32를 해주면 되고, 대문자일 땐 +32를 해주면 대소문자 변환이 가능하다.
출력부의 마지막 줄은 아스키코드에서 대소문자 차이를 확인 해 볼 수 있는 코드를 넣어두었다.
| 코드가 이상하거나, 이해되지 않는 부분이 있다면 댓글 남겨주세요! + 더 좋은 풀이 방법이 있다면 알려주세요 :) |
'Programming > Python' 카테고리의 다른 글
| [백준] 8741번 : 이진수 합 (Python / 파이썬) (0) | 2023.01.28 |
|---|---|
| [백준] 1676번 : 팩토리얼 0의 개수 (Python / 파이썬) (0) | 2023.01.27 |
| [백준] 1181번 : 단어 정렬 (Python / 파이썬) (0) | 2023.01.27 |
| [백준] 10808번 : 알파벳 개수 (Python / 파이썬) (0) | 2023.01.27 |
| [백준] 2789번 : 유학 금지 (Python / 파이썬) (2) | 2023.01.24 |