Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Kaggle
- programmers
- PYTHON
- 프로그래머스
- Real or Not? NLP with Disaster Tweets
- github
- 편스토랑
- 코로나19
- 캐치카페
- gs25
- 편스토랑 우승상품
- 우분투
- Docker
- hackerrank
- SW Expert Academy
- 백준
- 데이콘
- 금융문자분석경진대회
- 프로그래머스 파이썬
- dacon
- 자연어처리
- ubuntu
- Baekjoon
- AI 경진대회
- ChatGPT
- leetcode
- 더현대서울 맛집
- 맥북
- Git
- 파이썬
Archives
- Today
- Total
솜씨좋은장씨
[BaekJoon] 24745번 : Morse Code Palindromes (Python) 본문
Programming/코딩 1일 1문제
[BaekJoon] 24745번 : Morse Code Palindromes (Python)
솜씨좋은장씨 2022. 10. 30. 12:43728x90
반응형
코딩 1일 1문제! 오늘의 문제는 백준의 Morse Code Palindromes 입니다.
👨🏻💻 문제 풀이
입력받은 문자열을 모스부호로 변경하고
변경한 모스부호가 palindrome 인지 아닌지 확인하여
palindrome 이면 YES를
palindrome 이 아니면 NO를 출력하는 문제입니다.
def convert_string_to_morse_code(string):
morse_code_list = []
string = string.lower()
morse_code_dict = {
"a": ".-", "b": "-...", "c": "-.-.", "d": "-..", "e": ".", "f": "..-.",
"g": "--.", "h": "....", "i": "..", "j": ".---", "k": "-.-", "l": ".-..",
"m": "--", "n": "-.", "o": "---", "p": ".--.", "q": "--.-", "r": ".-.",
"s": "...", "t": "-", "u": "..-", "v": "...-", "w": ".--", "x": "-..-",
"y": "-.--", "z": "--..", "0": "-----", "1": ".----", "2": "..---", "3": "...--",
"4": "....-", "5": ".....", "6": "-....", "7": "--...", "8": "---..", "9": "----."
}
for char in list(string):
if char in morse_code_dict:
morse_code_list.append(morse_code_dict[char])
return "".join(morse_code_list)
먼저 문자열을 모스부호로 바꾸어주는 함수를 만들었습니다.
각 문자에 대한 모스부호 값을 dictionary 로 만들어 준 다음
변환한 값들을 list 에 담고 "".join()으로 하나의 문자열로 만들어주었습니다.
def check_is_palindrome(morse_code):
is_palindrome = False
if morse_code == morse_code[::-1] and len(morse_code) > 0:
is_palindrome = True
return is_palindrome
이렇게 만든 문자열을
palindrome 인지 아닌지 체크하는데에는 [::-1] 을 활용하였습니다.
이 문제에서는 아무것도 입력을 받지 않았을때 정답을 NO 로 하기로 하였으므로
길이가 1 이상인 값만 palindrome 을 체크하여 palindrome 일때 True 를 return 하도록 하였습니다.
def make_answer(is_palindrome):
return "YES" if is_palindrome else "NO"
전체 코드는 아래를 참고해주세요.
👨🏻💻 코드 ( Solution )
def convert_string_to_morse_code(string):
morse_code_list = []
string = string.lower()
morse_code_dict = {
"a": ".-", "b": "-...", "c": "-.-.", "d": "-..", "e": ".", "f": "..-.",
"g": "--.", "h": "....", "i": "..", "j": ".---", "k": "-.-", "l": ".-..",
"m": "--", "n": "-.", "o": "---", "p": ".--.", "q": "--.-", "r": ".-.",
"s": "...", "t": "-", "u": "..-", "v": "...-", "w": ".--", "x": "-..-",
"y": "-.--", "z": "--..", "0": "-----", "1": ".----", "2": "..---", "3": "...--",
"4": "....-", "5": ".....", "6": "-....", "7": "--...", "8": "---..", "9": "----."
}
for char in list(string):
if char in morse_code_dict:
morse_code_list.append(morse_code_dict[char])
return "".join(morse_code_list)
def check_is_palindrome(morse_code):
is_palindrome = False
if morse_code == morse_code[::-1] and len(morse_code) > 0:
is_palindrome = True
return is_palindrome
def make_answer(is_palindrome):
return "YES" if is_palindrome else "NO"
if __name__ == "__main__":
string = input()
morse_code_list = convert_string_to_morse_code(string=string)
print(morse_code_list)
is_palindrome = check_is_palindrome(morse_code=morse_code_list)
print(make_answer(is_palindrome=is_palindrome))
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[BaekJoon] 18409번 : 母音を数える (Counting Vowels) (Python) (0) | 2022.11.01 |
---|---|
[BaekJoon] 6438번 : Reverse Text (Python) (0) | 2022.10.31 |
[BaekJoon] 25893번 : Majestic 10 (Python) (0) | 2022.10.29 |
[BaekJoon] 25858번 : Divide the Cash (Python) (0) | 2022.10.28 |
[BaekJoon] 6810번 : ISBN (Python) (0) | 2022.10.27 |
Comments