본문 바로가기

백준 (PYTHON)/Bronze

[PYTHON/Bronze V] 백준 2744번 대소문자 바꾸기

반응형

 

문제 링크

 


 

풀이

 

1) 아스키코드와 ord 함수, chr 함수를 활용

 

※ ord(문자) 함수

파라미터로 받은 문자의 아스키 코드 번호를 반환한다.

 

※ chr(숫자) 함수

파라미터로 받은 숫자를 유니코드에 따라 해당하는 문자로 치환해준다.

 

아스키코드 표를 살펴보자. 영어 대문자는 65부터 90, 소문자는 97부터 122까지의 범위에 해당된다. 아스키 범위값과 if문을 사용, ord(문자)의 범위를 특정함으로써 문자의 대소문자 여부를 알 수 있다. 이후, 같은 알파벳의 대소문자가 32씩 차이가 난다는 점을 이용해 ord(문자)의 값을 바꿔준 뒤, chr 함수를 통해 다시 문자로 바꿔준다. 이 과정을 입력받은 문자열이 끝날 때까지 반복하면 된다. 

 

 

2) 문자열.swapcase() 메소드를 이용

 

※ 문자열.swapcase() 메소드

문자열의 대소문자를 변환해주는 메소드

 

 

코드

 

1) 아스키 활용

 

import sys 
input = sys.stdin.readline 

word = input().strip()

for i in range(len(word)):

	temp = ord(word[i])

	if temp >= 65 and temp <= 90:
    	temp += 32
    	print(chr(temp), end = "")
    	continue

	elif temp >= 97 and temp <= 122:
    	temp -= 32
    	print(chr(temp), end = "")
    	continue

 

2) swapcase 활용

 

import sys 
input = sys.stdin.readline 

word = input().strip()

print(word.swapcase())

 

반응형