해독 함수 구현
이 단계에서는 두운시의 메시지를 해독하기 위해 acrostic_poetry_decryption(poem) 함수를 구현합니다.
다음은 acrostic_poetry.py 파일의 시작 코드입니다:
import re
from typing import Optional
def acrostic_poetry_decryption(poem: str) -> Optional[str]:
"""
각 행의 첫 단어를 추출하여 연결함으로써 두운시의 메시지를 해독합니다.
"""
## 입력 내용이 비어 있으면 `None` 을 반환합니다.
if not poem:
return None
## TODO: 해독 로직 구현
## 1. ',' 또는 '.' 구분자를 사용하여 시를 행으로 분할합니다.
## 2. 각 행에서 첫 번째 단어를 추출합니다.
## 3. 첫 번째 단어를 연결하여 해독 텍스트를 얻습니다.
## 4. 결과 문자열을 변수 `decryption_text` 에 할당합니다.
return decryption_text
해독 함수를 구현하는 방법은 다음과 같습니다:
re.split() 함수와 r"[,.]" 정규 표현식 패턴을 사용하여 poem 문자열을 행 목록으로 분할합니다.
- 행 목록을 반복하고, 각 행에 대해 공백으로 행을 분할하고 첫 번째 요소를 가져와 첫 번째 단어를 추출합니다.
- 모든 첫 번째 단어를 연결하여 해독 텍스트를 얻습니다.
- 해독 텍스트를
decryption_text 변수에 할당하고 반환합니다.
다음은 완성된 코드입니다:
import re
from typing import Optional
def acrostic_poetry_decryption(poem: str) -> Optional[str]:
"""
각 행의 첫 단어를 추출하여 연결함으로써 두운시의 메시지를 해독합니다.
"""
## 입력 내용이 비어 있으면 `None` 을 반환합니다.
if not poem:
return None
## ',' 또는 '.' 구분자를 사용하여 시를 행으로 분할합니다.
lines = re.split(r"[,.]", poem)
## 각 행에서 첫 번째 단어를 추출합니다.
words = [line.strip().split(" ")[0] for line in lines]
## 첫 번째 단어를 연결하여 해독 텍스트를 얻습니다.
decryption_text = "".join(words)
return decryption_text