-
[C++] 백준 17828 문자열 화폐알고리즘/백준 2023. 8. 15. 16:26반응형123456789101112131415161718192021222324252627282930313233343536373839404142#include <iostream>#include <string>using namespace std;int n,x;string answer = "";void input() {cin >> n >> x;}void solve() {// 불가능한 경우if(n * 26 < x || n * 1 > x) { cout << "!"; return; }int s = n;for(int i=0; i<s; i++) {int n_tmp = n-1;if(n_tmp * 26 >= x-1) {answer += "A";x -= 1;}else {int tmp = x - n_tmp * 26;char c = 'A' + (tmp-1);answer += c;x -= tmp;}n -= 1;}cout << answer;}int main() {input();solve();}
cs 문자열 + 그리디 문제
N이 5,000,000 까지 가능하므로 O(n) 으로 처리하며 사전순으로 가장 앞서는 로직을 구현해야한다.
제출 후 50%에서 출력 초과가 났을 경우 n = 1, x = 100 의 반례를 생각해보자
728x90반응형'알고리즘 > 백준' 카테고리의 다른 글
[백준] 21275 폰 호석만 C++ (0) 2023.08.10 [C++] 백준 16981 봄버맨 (0) 2023.01.22 [C++] 백준 1238 파티 (0) 2023.01.21 [C++] 백준 10431 줄세우기 (0) 2023.01.19 [C++] 백준 4659 비밀번호 발음하기 (0) 2023.01.17