## solution  

N,B가 첫 줄에 주어질때, 10진법 수 N을 B진법으로 출력


N을 B^x로 계속 나누면 된다.

2^30이 10억정도 인것 같아서 2^30부터 2^1까지 나누었다.

좋은 풀이는 아닌것 같은데 다른 방법이 떠오르지 않는다.


숏코딩에서 

```chr(n%b+[48,55][n%b>9])+s

```

이 부분이 나누어서 더하는 부분인것 같은데 어떤 방법인지 모르겠다... 처음 나누는 숫자는 어떻게 정하는거지? 큰 숫자부터 먼저 나누어야 되는것 아닌가


채점하는데 오래걸리던데 pypy3이 아닌 python3으로 제출했다면 에러가 떴을것 같다. 별로 차이 없을수도 있고..


## CODE  


```python

N,B = map(int,input().split())

n = ''

for k in range(30,-1,-1):

    add = N//(B**k)

    if add > 9:

        add = chr(add + 55)

    elif add == 0:

        if n == '':

            add = ''

        else:

            add = '0'

    else:

        add = str(add)    

    n += add

    N = N%(B**k)

print(n)

```

제출한 코드, chr(65) = A 라는건 기억해두자. 파이썬으로 바로 알수 있기는 한데...


```python

N,B = map(int,input().split())

n = ''

for k in range(30,-1,-1):

    add = N//(B**k)

    if add > 9:

        add = chr(add + 55)

    if add == 0:

        add = ''

    n += add

    N = N%(B**k)

print(n)

```

이 코드는 if에 해당하지 않는 경우 str이 아니라서 더할때 에러가 발생하고


```python

N,B = map(int,input().split())

n = ''

for k in range(30,-1,-1):

    add = N//(B**k)

    if add > 9:

        add = chr(add + 55)

    elif add == 0:

        if k == 0:

            add = '0'

        else:

            add = ''

    else:

        add = str(add)    

    n += add

    N = N%(B**k)

print(n)

```

이 코드는 중간에 나오는 0은 더해지지 않아서 틀린 코드다.



```python

n,b=map(int,input().split())

s=""

while n:s=chr(n%b+[48,55][n%b>9])+s;n//=b

print(s)

```

짧은 코드들이랑 방식이 크게 다른것 같지는 않은데 정확한 의미를 모르겠다. [48,55] ??