[BOJ] 1036번: 36진수

https://www.acmicpc.net/problem/1036


각 digit(0~9, A~Z)에 대해 전체 합을 생각해볼 때 그 digit에 곱해지는 값이 얼마인지를 미리 계산해둡니다. 예를 들어


2

AB2

211


일 경우, A에는 36**2, B에는 36, 2에는 36**2+1, 1에는 37이 곱해집니다.(코드 상에서 val[i])


그리고 i = 0~35에 대해 val[i]*(35-i)가 큰 순으로 K개를 택해, 그것들을 Z로 변경하면 됩니다.


long long 범위를 아득하게 넘어서기 때문에 python으로 코딩했습니다.


https://github.com/blisstoner/BOJ/blob/master/1036.py

'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ] 11049번: 행렬 곱셈 순서  (0) 2018.03.20
[BOJ] 1509번: 팰린드롬 분할  (0) 2018.03.20
[BOJ] 5557번: 1학년  (0) 2018.03.20
[BOJ] 2531번: 회전 초밥  (0) 2018.03.15
[BOJ] 2436번: 공약수  (0) 2018.03.15
[BOJ] 14502번: 연구소  (0) 2018.03.13
  Comments