파이썬 알고리즘 157번 | [백준 11655번] ROT13(ord, chr)

Yunny.Log ·2022년 5월 26일
0

Algorithm

목록 보기
160/318
post-thumbnail

157. ROT13

1) 어떤 전략(알고리즘)으로 해결?

2) 코딩 설명

<내 풀이>


import sys#알파벳 13글자씩 밀어서 만들기

#inp = (sys.stdin.readline().strip()) 이거 하면 오류남
inp = (sys.stdin.readline().rstrip())
res=[]
# print(ord('Z'))
# print(ord('z'))
# print(ord('O'))
for i in inp:
    if i.isalpha():
        if (i.isupper() and ord(i)+13<=ord('Z')) or (i.islower() and ord(i)+13<=ord('z')):
            #print("case1 " , ord(i)+13)
            res.append(chr(ord(i)+13))
        else :
            #print("case2 " , ord(i)-13)
            res.append(chr(ord(i)-13))
    else :
        res.append(str(i))
# print(res)
for i in res:
    print (i, end="")

<내 틀렸던 풀이, 문제점>


import sys#알파벳 13글자씩 밀어서 만들기
# ord 로 숫자로 바꾸고 13을 더하도록 하기 
# 슷자는 가만히 냅두기
inp = (sys.stdin.readline().strip())
res=[]
for i in inp:
    if i.isalpha():
        if (ord(i)>=65 and ord(i)<=(ord('Z')-13)) or (ord(i)>=97 and ord(i)<=(ord('z')-13)):
            res.append(chr(ord(i)+13))
        else :
            res.append(chr(ord(i)-13))
    else :
        res.append(i)

print("".join(res))

=> 44%까지 갔다가 출력형식이 잘못됐다고 뜬다.

import sys#알파벳 13글자씩 밀어서 만들기
# ord 로 숫자로 바꾸고 13을 더하도록 하기 
# 슷자는 가만히 냅두기
inp = (sys.stdin.readline().strip())
res=[]
# print(ord('Z'))
# print(ord('z'))
# print(ord('O'))
for i in inp:
    if i.isalpha():
        if (i.isupper() and ord(i)+13<=ord('Z')) or (i.islower() and ord(i)+13<=ord('z')):
            #print("case1 " , ord(i)+13)
            res.append(chr(ord(i)+13))
        else :
            #print("case2 " , ord(i)-13)
            res.append(chr(ord(i)-13))
    else :
        res.append(str(i))
# print(res)
for i in res:
    print (i, end="")

구글링 : https://www.acmicpc.net/board/view/11233

-아,,,맨 앞에 공백이 들어오는 경우도 있었다구 한다! 함부로 앞 공백 지우지 않도록 rstip()만 쓰자 ㅠㅠ

<반성 점>

  • join은 정수는 안된다!
  • strip() 을 함부로 사용하지 말라!!!! ㅠㅠㅠ흑흑

<배운 점>

  • strip 으로 input 공백 지울 때 오른쪽만 지우는 습관을 들이자.
  • 문자열 슬라이싱
print(a[-2:]) # [8, 9]
print(a[:-2]) # [0, 1, 2, 3, 4, 5, 6, 7]
print(a[-3:-1]) # [7, 8]

0개의 댓글