※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 20913번 문제인 Mixtape Management이다.
문제는 아래 링크를 확인하자.

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

 

어떤 같은 자릿수의 서로 다른 두 양의 정수 AB에 대하여 A를 일정 횟수 연속으로 이어붙여 얻은 수와 B를 연속으로 이어붙여 얻은 수의 사전순 대소는 AB의 사전순 대소를 따라가며, 크기의 경우 이어붙인 횟수를 따라감을 확인하자.

 

따라서, 서로 다른 n개의 세자리 수를 준비한 뒤 수열의 i번째 수를 준비한 수 중 i번째 수를 반복한 수를 적으면 주어진 수들이 사전순으로 나열됨을 알 수 있다. 이제 각 수를 적절히 반복시켜 자릿수를 늘리는 것으로 문제 조건에 맞게 대소관계를 설정해 문제를 해결하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
#include <string>
using namespace std;

int N;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> N;
	for (int i = 0; i < N; i++) {
		string s = to_string(i + 100);
		int x; cin >> x;
		while (x--) cout << s;
		cout << ' ';
	}
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 19276 // C++] Magic Trick  (0) 2024.08.15
[BOJ 1471 // C++] 사탕 돌리기  (0) 2024.08.14
[BOJ 27503 // C++] 요가 수업  (0) 2024.08.12
[BOJ 12347 // C++] 한수 2  (0) 2024.08.11
[BOJ 19666 // C++] Cryptography  (0) 2024.08.10

+ Recent posts