이것도 단순 노가다 문제였다:
def print_formatted(number):
for i in range(1, number):
print(' '*(len(format(number, 'b')) - len(str(i))) + str(i) +
' '*(len(format(number, 'b'))+1 - len(format(i, 'o'))) + str(format(i, 'o')) +
' '*(len(format(number, 'b'))+1 - len(format(i, 'X'))) + str(format(i, 'X')) +
' '*(len(format(number, 'b'))+1 - len(format(i, 'b'))) + str(format(i, 'b')))
return print(' '*(len(format(number, 'b')) - len(str(i))) + str(number) +
' '*(len(format(number, 'b'))+1 - len(format(number, 'o'))) + str(format(number, 'o')) +
' '*(len(format(number, 'b'))+1 - len(format(number, 'X'))) + str(format(number, 'X')) +
' '*(len(format(number, 'b'))+1 - len(format(number, 'b'))) + str(format(number, 'b')))
if __name__ == '__main__':
n = int(input())
print_formatted(n)
단순 노가다 문제였지만, 여기서 이제 알아야 될 부분은 format(number, 'o'), format(number, 'X'), format(number, 'b')인 부분이다. 여기서 이 format('string', 'o')의 경우는 'string'을 octal value로, format(number, 'X')는 'string'을 대문자 Hexadecimal value로, 그리고 format(number, 'b')는 'string'을 binary value로 바꿔주는 역할을 한다..
'알고리즘 테스트 > Hackerrank 문제풀이 및 해설' 카테고리의 다른 글
<Hackerrank 문제풀이: 파이썬> itertools.product() (0) | 2020.11.25 |
---|---|
<Hackerrank 문제풀이: 파이썬> Capitalize! (0) | 2020.11.24 |
<Hackerrank 문제풀이: 파이썬> Designer Door Mat (0) | 2020.11.24 |
<Hackerrank 문제풀이: 파이썬> Text Wrap (0) | 2020.11.24 |
<Hackerrank 문제풀이: 파이썬> List Comprehensions (0) | 2020.11.23 |