BOJ 문제 링크: https://www.acmicpc.net/problem/17828
각 알파벳 A, B, C, . . ., Z 순서대로 1, 2, 3, . . ., 26만큼의 화폐가치가 있다.
길이가 N인 알파벳을 나열한 문자열을 만들어서 각 문자의 화폐가치의 합이 X인 문자열 화폐를 만들려한다.
주어진 조건을 충족하면서 사전순으로 가장 빠른 문자열을 출력하자.
문자열이 사전순으로 가장 앞서려면 A를 앞쪽에 최대한 많이 나열하면 된다는것을 직관적으로 알수 있다.
그러기 위해서는 Z를 뒤로 최대한 많이 배치해서 주어진 화폐가치를 최대한 채우고, 남은 자리는 A로 채운다.
이때, A와 Z사이에 남은 화폐가치를 채우기 위한 가치가 2~25사이인 문자가 하나 올 수 있다.
코드 원본: https://github.com/sbl133/BOJ/blob/main/%2317828.cpp
댓글을 통한 코드리뷰, 질문, 지적 언제든 환영입니다!
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ] 백준 11054번 가장 긴 바이토닉 부분 수열 (0) | 2021.10.04 |
---|---|
[BOJ] 백준 14698번 전생했더니 슬라임 연구자였던 건에 대하여 (Hard) c++ (0) | 2021.10.01 |
[BOJ] 백준 15686번 치킨 배달 c++ (0) | 2021.09.22 |
[BOJ] 백준 12865번 평범한 배낭 c++ (0) | 2021.09.20 |
[BOJ] 백준 14503번 로봇 청소기 (0) | 2021.09.04 |