코드시그널 아케이드 파이썬 08 번 풀이
인트로의 지옥을 벗어났구요.. 그래프를 풀려면, 자바같은 머가튼 언어는 별로 더라구요.
자 파이썬을 시작해보겠습니다. 조금 배워보니 왜 파이썬 파이썬 하는지 알겠더군요.
약간 자바보다는 안정감이 떨어지지만(?) 개인적으로
유연하고 간편하다? 라는 느낌을 받았습니다. 자 시작해볼까요!!
Qusetion.문제입니다.
Implement the missing code, denoted by ellipses. You may not modify the pre-existing code.
Your university professor decided to have a little fun and asked the class to implement a function that, given a number n and a base x, converts the number from base x to base 16. To make things more interesting, he announced that the first student to write the solution will have to answer fewer question than the rest of the class during the final exam.
Laughing devilishly, you asked if it was okay to use a language of your choice, and the unsuspecting professor answered "yes". It's settled then: Python is your language of choice!
Now you're bound to win. Implement a function that, given an integer number n and a base x, converts n from base x to base 16.
convert ,, convert ...그냥 딱봐도 형변환 시켜달라는 건데요. 아마도 16진법으로 변환해달라는 것이겠습니다.
그리고 , n은 문자열로 숫자로 나오는데, 이 숫자는 10진법이 아니라, x의 숫자에 따라 그 진법으로 표기되어있는 문자열 숫자라고 하는 것입니다.
1302 라면 이것은 x =5 이니깐, 5진법으로 표기된 1302 라는 것이죠.
그렇다면 이것을 16진법으로 바꾸려면 어떻게 한번에 할까요?
이런 문제입니다.
예시
For n = "1302" and x = 5, the output should bebaseConversion(n, x) = "ca".
Here's why:
5진법으로 1302
= 10진법으론 202
= 16진법으론 ca 가 된다는 말입니다.
답안입니다.
해결
def baseConversion(n, x):
return format(int(n, x),'x')
format메서드를 활용하여 간단하게 표현할 수 있엇습니다.
(관련 정보는 이곳으로 가시면 자세히 알 수 있습니다. )
이 부분은 표준 표기 형식을 정할 수 있다고 합니다.
16진법 표기 방법은 'x' 를 사용한다고 나와있습니다.
그렇다면 어떻게 쓰느냐,
format()함수의 구조는 , 를 통해 구분하기는 하지만, 무엇보다 포맷형식을 말하는 거라 헷갈렸습니다.
가이드 문서를 자세히 보면, format(format_string,/,/*args,**kwargs) 라고 적혀 있습니다.
**kwargs는 키워드도 사용이 가능하다는 의미로, 포맷 대상 (format_string)이 있다면, ',' 를 통해 다른 문자열을 넣어도 되고 혹은 키워드로 표기 형식을 정할 수도 있다는 것입니다. 그야말로 다양한 기능이 있는 것입니다.
그러므로 답안의 fromat(int(n,x), 'x') 의 의미는,
int(n, x)
n의 숫자와 x의 진법 표기를 일단 int - 10진법으로 바꿔주는 형변환을 실시합니다.
format(대상, 'x')
그 형변환 된 것을 foramt에 대상 자리에 넣어주고, 그 표기 형식은 다시 16진법을 나타내는 'x'로 명령합니다.
이상입니다.
hex()
int()
format()
등 다양한 표기 법에 대해 배운 파트입니다. 잘 기억해놔야겠습니다.
공감 버튼♥눌러주시면 더욱 많은 포스팅을 올리는데 힘이 됩니다!
부탁드려요 돈드는거 아니잖아요~
'Algorithm > Python' 카테고리의 다른 글
#09_Code Signal Arcade Python :: Mex Function (0) | 2020.07.30 |
---|---|
#07_Code Signal Arcade Python :: Simple Sort (2) | 2020.06.25 |
#06_Code Signal Arcade Python :: Modulus (0) | 2020.06.15 |