본문 바로가기

코딩/Python

[Python] 백준 11655 ROT13

반응형

코드 작성

word=input()
ans=''
for i in word:
    if 'a'<= i <='z': 
        i=ord(i)+13
        if i>122:  
            i-=26
        ans += chr(i)
    elif 'A'<= i <='Z':
        i=ord(i)+13
        if i>90:
            i-=26
        ans += chr(i)
    else: #띄어쓰기 일 경우
        ans += i
print(ans)

코드  풀이

#1. 문제순서

(1) 입력받은 단어가 소문자라면 아스키 코드로 변환하여 13을 더하는데 122(소문자 z )보다 크면 26(알파벳 개수)을 빼고 ans라는 문자열에 추가한다.

(2) 입력받은 단어가 대문자라면 아스키 코드로 변환하여 13을 더하는데 90(대문자 Z)보다 크면 26(알파벳 개수)을 빼고 ans라는 문자열에 추가한다.

 

#2.

- ord(ordinal value,서수 값) : 문자 → 숫자
- chr(character) : 숫자 → 문자

- 아스키 코드 범위 대문자(65~90), 소문자(97~122)

반응형

'코딩 > Python' 카테고리의 다른 글

[Python] 10808 알파벳 개수  (0) 2022.11.19
[Python] 백준 9613 GCD합  (0) 2022.11.19
[Python] 백준 11656 접미사 배열  (0) 2022.11.19
[Python] 백준 9020 골드바흐의 추측  (0) 2022.11.19
[Python] 백준 10989 수 정렬하기3  (0) 2022.11.19