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

 

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

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

 

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

 

따라서, 서로 다른 \(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