Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

블로그 언저리인 무언가

[백준/BOJ] 13140 Hello World! 본문

Programming/BOJ

[백준/BOJ] 13140 Hello World!

he1fire 2020. 10. 7. 00:30
728x90

문제 : 13140 Hello World!

 

13140번: Hello World!

N이 주어질 때 hello + world = N을 만족하는 서로 다른 한 자리 자연수(0 포함) d, e, h, l, o, r, w를 구해서 아래 그림과 같은 형태로 출력하는 프로그램을 작성하여라. 단, h와 w는 0이 될 수 없다.

www.acmicpc.net

숫자 N이 주어질 때, hello + world = N을 만족하는

서로 다른 한자리 자연수 d, e, h, l, o, r, w를 출력하는 문제이다.

next_permutation을 사용해 모든 경우의 수를 체크해

만족하는 수를 찾아 출력하면 된다.


Code

#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll N;
vector<ll> arr;
int main(){
    cin >> N;
    for (int i=0;i<10;i++){
        arr.push_back(i);
    }
    ll chk=1;
    do{
        if (!chk)
            break;
        if (arr[0]==0 || arr[4]==0)
            continue;
        ll a=0, b=0, dir[2][5]={{0,1,2,2,3},{4,3,5,2,6}};
        for (int i=0;i<5;i++){
            a*=10;
            b*=10;
            a+=arr[dir[0][i]];
            b+=arr[dir[1][i]];
        }
        if (a+b==N){
            chk=0;
            printf("%7d\n", a);
            printf("+%6d\n", b);
            printf("-------\n");
            printf("%7d\n", N);
        }
    }while(next_permutation(arr.begin(),arr.end()));
    if (chk)
        cout << "No Answer";
    return 0;
}
728x90

'Programming > BOJ' 카테고리의 다른 글

[백준/BOJ] 2110 공유기 설치  (0) 2020.10.12
[백준/BOJ] 18116 로봇 조립  (0) 2020.10.09
[백준/BOJ] 1162 도로포장  (0) 2020.10.02
[백준/BOJ] 1446 지름길  (0) 2020.09.30
[백준/BOJ] 1766 문제집  (0) 2020.09.29
Comments