-
백준 1112 - 진법 변환 (Python)BOJ PS/Python 2023. 6. 1. 19:38
https://acmicpc.net/problem/1112
1112번: 진법 변환
우리는 10진수를 사용한다. 10진수는 0부터 9까지 숫자를 사용한다. 12345가 10진수라면, 이 값은 1×104 + 2×103 + 3×102 + 4×101 + 5×100이다. 자 이제 -10진법을 보자. 이 수도 0부터 9까지 숫자를 사용하고,
www.acmicpc.net
수학 문제라 막상 구현은 크게 어렵지 않았다.
#진법 변환 x,b=map(int,input().split()) neg=False if b >=2 and x<0: neg=True x*= -1 answer="" while x: q,r=divmod(x,b) if r<0: q+=1 r-=b x=q answer+=str(r) if not answer: print(0) elif neg: print("-"+answer[::-1]) else: print(answer[::-1])
결국 음수 몫의 나머지와 그 나머지 처리를 어떻게 할 지가 핵심이었던 문제. divmod로 처리 후, 음수 진법이고 나머지가 0 이하면 몫을 1 더하고 나머지에서 진법만큼 뺀다.
'BOJ PS > Python' 카테고리의 다른 글
백준 3425 - 고스택 (Python) (0) 2023.06.01 백준 17136 - 색종이 붙이기 (Python) (0) 2023.06.01 백준 4195 - 친구 네트워크 (Python) (0) 2023.06.01 백준 1016 - 제곱 ㄴㄴ수 (Python) (0) 2023.06.01 백준 14289 - 본대 산책 3 (Python) (0) 2023.06.01