문제

영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오.

 

 

조건 및 입출력

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를 해주면 대소문자 변환이 가능하다.

 

출력부의 마지막 줄은 아스키코드에서 대소문자 차이를 확인 해 볼 수 있는 코드를 넣어두었다.

 

 


 

코드가 이상하거나, 이해되지 않는 부분이 있다면 댓글 남겨주세요!

+ 더 좋은 풀이 방법이 있다면 알려주세요 :)

+ Recent posts