슈콩

[BOJ] 백준 1256 사전 본문

Algorithms/Baekjoon

[BOJ] 백준 1256 사전

shukong 2025. 9. 10. 13:25

[문제]

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

 

 

[소스 코드]

import java.io.*;
import java.util.*;
public class Main {
    public static void main(String[] args) throws IOException {
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	StringTokenizer st = new StringTokenizer(br.readLine());
    	int n = Integer.parseInt(st.nextToken());
    	int m = Integer.parseInt(st.nextToken());
    	int k = Integer.parseInt(st.nextToken());
    	long[][] dp = new long[201][201];
    	for(int i=1;i<=200;i++) {
    		dp[i][0] = dp[i][i] = 1;
    		for(int j=1;j<i;j++) {
    			dp[i][j] = dp[i-1][j-1] + dp[i-1][j];
    			if(dp[i][j]>1000000000) dp[i][j] = 1000000001;
    		}
    	}
    	String result = "";
    	while(n>0 && m>0) {
    		long cnt = dp[n+m-1][m];
    		if(k>cnt) {
    			m--;
    			result += "z";
    			k -= cnt;
    		}
    		else {
    			n--;
    			result += "a";
    		}
    	}
    	if(k>1) System.out.println(-1);
    	else {
    		while(n-->0) result += "a";
    		while(m-->0) result += "z";
    		System.out.println(result);
    	}
    }
}

'Algorithms > Baekjoon' 카테고리의 다른 글

[BOJ] 백준 1456 거의 소수  (0) 2025.09.10
[BOJ] 백준 1292 쉽게 푸는 문제  (0) 2025.09.10
[BOJ] 백준 1193 분수찾기  (0) 2025.09.09
[BOJ] 백준 10610 30  (0) 2025.09.08
[BOJ] 백준 1038 감소하는 수  (0) 2025.09.08