Skip to content

Instantly share code, notes, and snippets.

@inspirit941
Created December 1, 2019 13:50
Show Gist options
  • Save inspirit941/04bfb0fe95c446c791921b052d347542 to your computer and use it in GitHub Desktop.
Save inspirit941/04bfb0fe95c446c791921b052d347542 to your computer and use it in GitHub Desktop.
def make_base(numbers, base, table):
temp = []
if numbers == 0:
return "0"
while numbers != 0:
numbers, r = divmod(numbers, base)
temp.append(str(r))
# n진법으로 변환한 문자열을 n진수로 바꾼 뒤 문자열 형태로 리턴
return "".join([str(table[int(i)]) for i in temp[::-1]])
def solution(n, t, m, p):
alpha = "ABCDEF"
# 16진수를 표현하기 위한 table
table = {i:i for i in range(10)}
for i in range(6):
table[i+10] = alpha[i]
# 만들어낼 수 있는 모든 숫자를 n진수 + 문자열 형태로 변환
candidate = "".join([make_base(i, n, table) for i in list(range(t*m))])
# 정해진 위치의 숫자만 확인해 반환하기.
result = []
for i in range(len(candidate)):
if i % m == p - 1:
result.append(candidate[i])
# 말해야 하는 숫자의 개수가 다 차면 break
if len(result) == t:
break
return "".join(result)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment