본문 바로가기

Algorithm

(C++) - 백준(BOJ) 5217번 : 쌍의 합

반응형

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

 

5217번: 쌍의 합

문제 1보다 크거나 같고 12보다 작거나 같은 자연수가 주어졌을 때, 합이 n이 되는 두 수의 쌍을 찾는 프로그램을 작성하시오. 예를 들어, 5가 주어진 경우 가능한 쌍은 1,4와 2,3이 있다. 두 수는 항상 달라야 한다. 즉, 3,3은 올바른 쌍이 아니다. 또, 첫 번째 숫자가 두 번째 숫자보다 작아야 한다. 출력하는 쌍은 항상 사전순으로 출력해야 한다. 즉, 각 쌍의 작은 숫자로 비교를 해야 한다. 예를 들어 1,5는 2,4보다 사전순으로 앞선다.

www.acmicpc.net

 

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
#include <iostream>
#define ll long long
using namespace std;
int main() {
    int t;
    cin >> t;
    while (t--)
    {
        int n;
        int cnt = 0;
        cin >> n;
        cout << "Pairs for " << n << ": ";
        for (int i = 1; i <= 12; i++)
            for (int j = 1; j <= 12; j++)
                if (i + j == n && i<j)
                {
                    if (!cnt)
                    {
                        cnt++;
                        cout << i << ' ' << j;
                    }
                    else
                        cout << ", " << i << ' ' << j;
                }
        cout << '\n';
    }
}
cs