728x90
https://www.acmicpc.net/problem/11655
11655번: ROT13
첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다.
www.acmicpc.net
import sys
string = list(sys.stdin.readline().rstrip()) # list로 묶지 않으면 string[i] 접근 불가
for i in range(len(string)):
if string[i].isupper(): #1
if ord(string[i])+13 <= 90:
string[i] = chr(ord(string[i])+13)
else:
string[i] = chr(ord(string[i])-13)
elif string[i].islower(): #2
if ord(string[i])+13 <= 122:
string[i] = chr(ord(string[i])+13)
else:
string[i] = chr(ord(string[i])-13)
for char in string:
print(char, end='')
문자열 자체로는 인덱스 접근이 불가하고 list()함수로 묶어줘야 한다.
#1 : 소문자인지 확인
#2 : 대문자인지 확인
처음에 isalpha를 사용하는 줄 알았는데 아니었다. 역시 어설프게 알면 항상 틀린다. 문자열 문제를 풀면서 좀 더 바닥의 개념을 탄탄히 쌓는 느낌이든다. 물론 해결하는 과정에서는 맞왜틀을 반복하지만
728x90
'[PS(Problem Solving)] > [백준]' 카테고리의 다른 글
[백준] 1032 파이썬(python) : 명령 프롬프트 (0) | 2022.07.19 |
---|---|
[백준] 11656 파이썬(python) : 접미사 배열 - 문자열 슬라이싱 (0) | 2022.07.19 |
[백준] 10610 파이썬(python) : 30 (0) | 2022.07.19 |
[백준] 1159 파이썬(python) : 농구 경기 (0) | 2022.07.18 |
[백준] 10798 파이썬(python) : 세로읽기 - 사이즈계산 (0) | 2022.07.18 |