본문 바로가기
코딩 테스트/do it! 알고리즘 코딩테스트

082 사전

by ornni 2024. 8. 20.
728x90
반응형

첫번째 코드

 

이전의 조합 문제와 비슷한 문제지만,

조합을 어떻게 꾸려 나가야할지에 대한 고민이 많이 필요할 것 같다.

 

코드는 책을 참고했고,

헷갈렸던 부분은 m+n이 전체 개수임을 계속 까먹는 다는 것!!

 

import sys
input = sys.stdin.readline

n, m, k = map(int, input().split())
dp = [[0 for _ in range(202)] for i in range(202)]

for i in range(201):
    for j in range(i+1):
        if j == 0 or j == i:
            dp[i][j] = 1
        else:
            dp[i][j] = dp[i-1][j] + dp[i-1][j-1]
            if dp[i][j] > 1000000000:
                dp[i][j] = 1000000001

if dp[n+m][m] < k:
    print(-1)
else:
    while not (n == 0 and m == 0):
        if dp[n-1+m][m] >= k:
            print('a', end = '')
            n -= 1
        else:
            print('z', end = '')
            k -= dp[n-1+m][m]
            m -= 1

 

통과


링크

https://github.com/ornni/programmers/tree/main/%EB%B0%B1%EC%A4%80/Gold/1256.%E2%80%85%EC%82%AC%EC%A0%84

 

programmers/백준/Gold/1256. 사전 at main · ornni/programmers

repository for recording Programmers Algorithm problem solving - ornni/programmers

github.com

 

반응형

'코딩 테스트 > do it! 알고리즘 코딩테스트' 카테고리의 다른 글

084 1로 만들기  (0) 2024.08.22
081 순열의 순서  (0) 2024.08.20
080 조약돌 꺼내기  (0) 2024.08.15
079 다리 놓기  (0) 2024.08.15
078 부녀회장이 될테야  (0) 2024.08.13