※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 12924번 문제인 멋진 숫자 쌍이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/12924
12924번: 멋진 숫자 쌍
첫 번째 줄에 두 자연수 A, B가 주어진다. (A ≤ B ≤ 2,000,000, A와 B의 자릿수 개수는 같다.)
www.acmicpc.net
주어지는 입력의 크기를 확인하자.
각 범위의 수에 대하여, 모두 한번씩 떼었다 붙여도 충분한 시간이 남을 것 같지 않은가?
가장 많이 확인해봐야 할 100만~200만 범위에서도 약 100만개의 수의 6가지 배치, 약 600만개의 경우의 수만을 조사해보는 것으로 충분히 문제를 해결할 수 있다는 점을 관찰해내면, 남은 것은 구현 뿐이다.
아래는 제출한 소스코드이다.
#include <iostream>
#include <set>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int L, R; cin >> L >> R;
int ans = 0;
for (int i = L; i < R; i++) {
set<int> st;
int tmp1 = 10;
int tmp2 = 1;
while (tmp2 <= L) tmp2 *= 10;
tmp2 /= 10;
while (tmp1 < i) {
int temp = (i % tmp1) * tmp2 + i / tmp1;
if (i < temp && temp <= R) {
if (st.find(temp) == st.end()) {
st.insert(temp);
ans++;
}
}
tmp1 *= 10;
tmp2 /= 10;
}
}
cout << ans;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 2410 // C++] 2의 멱수의 합 (0) | 2021.09.02 |
---|---|
[BOJ 2623 // C++] 음악프로그램 (0) | 2021.09.01 |
[BOJ 2904 // C++] 수학은 너무 쉬워 (0) | 2021.08.30 |
[BOJ 1193 // C++] 분수찾기 (0) | 2021.08.29 |
[BOJ 11729 // C++] 하노이 탑 이동 순서 (0) | 2021.08.28 |