출처: https://meyouus.tistory.com/64 [정보 공유 - For Me For You For Us]
본문으로 바로가기

 

이것도 단순 노가다 문제였다:

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로 바꿔주는 역할을 한다..