※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 13140번 문제인 Hello World!이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/13140
13140번: Hello World!
N이 주어질 때 hello + world = N을 만족하는 서로 다른 한 자리 자연수(0 포함) d, e, h, l, o, r, w를 구해서 아래 그림과 같은 형태로 출력하는 프로그램을 작성하여라. 단, h와 w는 0이 될 수 없다.
www.acmicpc.net
이 문제는 hello+world = N을 만족시키는 서로 다른 수를 찾는 복면산 문제이다.
문자가 7종류뿐이므로, 7중 반복문으로 각 문자에 들어갈 수 있는 숫자들을 하나씩 넣어보는 것으로 문제를 해결할 수 있다.
h와 w는 0일 수 없다는 점도 잊지 말고 구현하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
bool visited[10];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int N; cin >> N;
for (int d = 0; d < 10; d++) {
visited[d] = 1;
for (int e = 0; e < 10; e++) {
if (visited[e]) continue;
visited[e] = 1;
for (int h = 1; h < 10; h++) {
if (visited[h]) continue;
visited[h] = 1;
for (int l = 0; l < 10; l++) {
if (visited[l]) continue;
visited[l] = 1;
for (int o = 0; o < 10; o++) {
if (visited[o]) continue;
visited[o] = 1;
for (int r = 0; r < 10; r++) {
if (visited[r]) continue;
visited[r] = 1;
for (int w = 1; w < 10; w++) {
if (visited[w]) continue;
if (h * 10000 + e * 1000 + l * 120 + o * 1001 + w * 10000 + r * 100 + d == N) {
cout << " " << h << e << l << l << o << '\n';
cout << "+ " << w << o << r << l << d << '\n';
cout << "-------\n";
if (N < 100000) cout << " " << N;
else cout << ' ' << N;
return 0;
}
}
visited[r] = 0;
}
visited[o] = 0;
}
visited[l] = 0;
}
visited[h] = 0;
}
visited[e] = 0;
}
visited[d] = 0;
}
cout << "No Answer";
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 3000 // C++] 직각 삼각형 (0) | 2021.08.09 |
---|---|
[BOJ 1256 // C++] 사전 (0) | 2021.08.08 |
[BOJ 1939 // C++] 중량제한 (0) | 2021.08.06 |
[BOJ 15918 // C++] 랭퍼든 수열쟁이야!! (0) | 2021.08.05 |
[BOJ 15916 // C++] 가희는 그래플러야!! (0) | 2021.08.04 |