1675 시저의 암호 1 (파이썬)

Tsi0511·2023년 4월 25일


s = input()
str = [] #s의 문자를 시저 암호문에 조건에 맞게 유니코드로 변환한 배열
re = [] #str배열의 유니코드들을 다시문자로 변환한 배열

for i in s:

    #공백추가
    if ord(i) == 32:
        str.append(ord(i))

    #유니코드값 -> a,b,c = 97,98,99 
    #a,b,c의 유니코드값에서 3을빼면 특수기호가 된다.
    elif 97 <= ord(i) <= 99:
        #유니코드값 20을 더해서 각각 x,y,z로 만들어준다.
        str.append(ord(i)+20)
    
    #3만큼 이동한 알파벳으로 추가
    else:
        str.append(ord(i)-3)

#str배열에 저장된 유니코드값 문자로 바꾸기
for i in str:
    re.append(chr(i))

#암호문 원문 복원 후 출력
for i in re:
    print(i, end='')

ord(str) → 문자를 아스키코드값으로 변환해주는 함수
chr(int) → 아스키코드를 문자로 변환해주는 함수


  1. 입력받을 문자열(s) 선언 후 그 문자열을 유니코드로 변환할 배열(str) 선언,
    그 배열을 다시 문자로 변환할 배열(re)을 선언해준다.

  2. 문자열 for문 돌려서 시저암호문 조건에 따라 문자들을
    하나씩 아스키코드값으로 변환해주고 str배열에 추가한다.

  3. 아스키코드가 담긴 배열을 다시 문자로 변환해준다음
    re 배열에 추가하고 그 배열의 요소들을 한줄로 출력해준다.

profile
프론트 공부하는 중..

0개의 댓글