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
- dacon
- hackerrank
- 더현대서울 맛집
- SW Expert Academy
- programmers
- PYTHON
- 코로나19
- gs25
- 편스토랑 우승상품
- 자연어처리
- leetcode
- 파이썬
- 맥북
- 편스토랑
- Real or Not? NLP with Disaster Tweets
- Kaggle
- 캐치카페
- 백준
- Git
- 데이콘
- 프로그래머스
- 금융문자분석경진대회
- 프로그래머스 파이썬
- ubuntu
- Docker
- github
- ChatGPT
- Baekjoon
- 우분투
- AI 경진대회
Archives
- Today
- Total
솜씨좋은장씨
[BaekJoon] 8611번 : 팰린드롬 숫자 (Python) 본문
728x90
반응형
코딩 1일 1문제! 오늘의 문제는 백준의 팰린드롬 숫자 입니다.
👨🏻💻 문제풀이
이 문제는 10진수 숫자를 입력받으면
2진수부터 10진수 까지 변환하면서 그 변환한 값이 팰린드롬인지 아닌지 확인하여
그 값이 팰린드롬인 경우
몇 진수의 수인지와 변환한 값을 출력하는 문제입니다.
% 진수 변환
def converter(number, n):
answer = ""
temp = list("0123456789ABCDEF")
if number == 0:
answer = "0"
else:
while number:
answer += temp[number % n]
number //= n
return answer[::-1]
2021.08.21 - [Programming/코딩 1일 1문제] - [BaekJoon] 14915번 : 진수 변환기 (Python)
진수 변환에는 예전에 풀었던 14915번의 방법을 활용하였습니다.
% 팰린드롬 확인
def check_palindrome(converted_number):
is_palindrome = False
if converted_number == converted_number[::-1]:
is_palindrome = True
return is_palindrome
팰린드롬인지 아닌지 확인하는 부분은 [::-1] 을 활용하였습니다.
% 2~10진수 로 변환한 값중 팰린드롬인 값 찾기
def palindrome_number(number):
answer_list = []
for n in range(2, 11):
converted_number = converter(
number=number, n=n
)
is_palindrome = check_palindrome(
converted_number=converted_number
)
if is_palindrome:
answer_list.append((n, converted_number))
return answer_list
위의 두 함수를 활용하여 2~10 진수로 변환한 값 중에 팰린드롬인 값을 찾아 리스트에 담았습니다.
% 정답 형식으로 출력하는 함수
def print_answer(answer_list):
if not answer_list:
print("NIE")
for answer in answer_list:
print(f"{answer[0]} {answer[1]}")
👨🏻💻 코드 ( Solution )
def converter(number, n):
answer = ""
temp = list("0123456789ABCDEF")
if number == 0:
answer = "0"
else:
while number:
answer += temp[number % n]
number //= n
return answer[::-1]
def check_palindrome(converted_number):
is_palindrome = False
if converted_number == converted_number[::-1]:
is_palindrome = True
return is_palindrome
def palindrome_number(number):
answer_list = []
for n in range(2, 11):
converted_number = converter(
number=number, n=n
)
is_palindrome = check_palindrome(
converted_number=converted_number
)
if is_palindrome:
answer_list.append((n, converted_number))
return answer_list
def print_answer(answer_list):
if not answer_list:
print("NIE")
for answer in answer_list:
print(f"{answer[0]} {answer[1]}")
if __name__ == "__main__":
number = int(input())
answer_list = palindrome_number(number=number)
print_answer(answer_list=answer_list)
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[BaekJoon] 5235번 : Even Sum More Than Odd Sum (Python) (0) | 2022.09.12 |
---|---|
[BaekJoon] 3486번 : Adding Reversed Number (Python) (0) | 2022.09.11 |
[BaekJoon] 3047번 : ABC (Python) (1) | 2022.09.08 |
[BaekJoon] 4740번 : 거울, 오! 거울 (Python) (0) | 2022.09.07 |
[BaekJoon] 6764번 : Sounds fishy! (Python) (1) | 2022.09.06 |
Comments