알고리즘 문제 풀이: 파이썬/BOJ

[BOJ_1718] 암호

hueco 2022. 11. 8.

 

📌 문제 링크: https://www.acmicpc.net/problem/1718

 

1718번: 암호

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

www.acmicpc.net

 

내 풀이(Success) :

 

🧐 Review:

 난이도가 낮은 문제였지만 어떻게 구현할지 생각을 좀 더 해볼 수 있는 좋은 문제라고 생각한다. 먼저 암호화 키는 deque를 이용해서 저장했고, 암호화를 진행하거나 진행하지 않거나 deque를 회전시키는 것으로 계속 사용할 수 있도록 구현했다.

문자열 s가 공백이 아닌 경우, ord() 함수를 이용해 해당 문자의 아스키코드 값을 읽고 암호화 키의 아스키 코드 값과 연산을 처리한다. 그리고 0으로 시작하는 파이썬의 인덱스를 처리해주기 위해 1을 추가적으로 뺐다. 이렇게 연산한 값(인덱스)를 이용해 미리 정의해둔 alphabet 문자열에서 암호화된 문자를 찾아 password에 추가해주었다.

 

미리 정의해둔 alphabet 문자열과 인덱싱을 사용한다면, 단순히 아스키코드와 연산을 이용해서 아스키코드의 알파벳 소문자 범위를 넘어갈 때 마다 보정해주는 추가적인 연산을 하지 않아도 된다.

 
 
 
 
 

'알고리즘 문제 풀이: 파이썬 > BOJ' 카테고리의 다른 글

[BOJ_6550] 부분 문자열  (0) 2022.11.08
[BOJ_1244] 스위치 켜고 끄기  (0) 2022.11.08
[BOJ_2512] 예산  (0) 2022.11.07
[BOJ_3758] KCPC  (0) 2022.11.07
[BOJ_4659] 비밀번호 발음하기  (0) 2022.11.06

댓글