STUDY/Algorithm

[백준] 1718 암호 python

sinawi95 2022. 1. 12. 09:12
728x90

https://www.acmicpc.net/problem/1718

 

1718번: 암호

Vigenere cipher이라는 암호화 방법은 암호화하려는 문장 (평문)의 단어와 암호화 키를 숫자로 바꾼 다음, 평문의 단어에 해당하는 숫자에 암호 키에 해당하는 숫자를 더하는 방식이다. 이 방법을 변

www.acmicpc.net

손풀겸 푸는 브론즈 문제 

평문과 암호키의 아스키코드를 사용해서 암호문 또한 a-z 사이의 값이 나오도록 만들었다.

C나 C++이라면 조금더 빠르게 풀었을듯 하다.

def main():
    p = input()
    k = input()
    answer = ''
    for i in range(len(p)):
        ch = p[i]
        if ch == ' ':
            answer += ch
            continue
        k_ch = k[i % len(k)]
        tmp = (ord(ch) - ord(k_ch) - 1) % 26
        answer += chr(97+tmp)
    print(answer)

if __name__ == '__main__':
    main()