최대 1 분 소요

1. 문제

[Bronze III] 쌍의 합 - 5217

문제 링크

성능 요약

메모리: 30840 KB, 시간: 64 ms

분류

구현(implementation)

문제 설명

1보다 크거나 같고 12보다 작거나 같은 자연수 n이 주어졌을 때, 합이 n이 되는 두 자연수의 쌍을 찾는 프로그램을 작성하시오.

예를 들어, 5가 주어진 경우 가능한 쌍은 1,4와 2,3이 있다. 두 수는 항상 달라야 한다. 즉, 3,3은 올바른 쌍이 아니다. 또, 첫 번째 수가 두 번째 수보다 작아야 한다.

출력하는 쌍은 항상 사전순으로 출력해야 한다. 즉, 각 쌍의 작은 수로 비교를 해야 한다. 예를 들어 1,5는 2,4보다 사전순으로 앞선다.

입력

첫째 줄에 테스트 케이스의 수 (< 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다.

출력

각 테스트 케이스마다 n을 만드는 쌍을 사전순으로 출력한다. n을 만드는 쌍이 없는 경우에는 아무것도 출력하지 않는다.

예제 출력 형식을 참고해 출력한다.

출처: 백준, https://https://www.acmicpc.net/

2. 해결방법 시간복잡도

  1. 단순 코딩 O(N^2)

3. 문제 해결 및 코드


  • 주석을 참고하면서 이해를 돕습니다.

4. 알고리즘 및 해설

  1. 이중 반복문을 통해 입력값을 2로 나눈 값까지 반복문을 돌린다.
    • 만약 해당 위치 값이 1이 아닌 경우 Pairs for 다음에 ,를 출력한다.
      • 해당 위치 값이 n-1이 아닌 경우 해당 위치값과 입력값 - 해당 위치값을 쌍으로 출력한다.
    • 이후 반복문이 한번 끝날 때마다 한칸을 출력한다.