https://www.acmicpc.net/problem/1256
# 1256 사전
n, m, k = map(int,input().split())
result = ""
arr = [[1]*(m+1) for _ in range(n+1)]
for i in range(1, n+1):
for j in range(1, m+1):
arr[i][j] = arr[i-1][j] + arr[i][j-1]
if arr[n][m] < k:
print(-1)
else:
while True:
if n == 0 or m == 0:
result += "z"*m
result += "a"*n
break
flag = arr[n-1][m]
if k <= flag:
result += "a"
n -= 1
else:
result += "z"
m -= 1
k -= flag
print(result)
'Coding Test' 카테고리의 다른 글
Python 백준 알고리즘 9252 : LCS 2 (0) | 2023.02.15 |
---|---|
Python 백준 알고리즘 2193 : 이친수 (0) | 2023.02.15 |
Python 백준 알고리즘 1316 : 그룹 단어 체커 (0) | 2023.02.09 |
Python 백준 알고리즘 2941 : 크로아티아 알파벳 (0) | 2023.02.09 |
Python 백준 알고리즘 5622 : 다이얼 (0) | 2023.02.09 |