[파이썬][백준 5217번] 쌍의 합
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. 해결방법 시간복잡도
- 단순 코딩 O(N^2)
3. 문제 해결 및 코드
-
주석을 참고하면서 이해를 돕습니다.
4. 알고리즘 및 해설
- 이중 반복문을 통해 입력값을 2로 나눈 값까지 반복문을 돌린다.
- 만약 해당 위치 값이 1이 아닌 경우 Pairs for 다음에 ,를 출력한다.
- 해당 위치 값이 n-1이 아닌 경우 해당 위치값과 입력값 - 해당 위치값을 쌍으로 출력한다.
- 이후 반복문이 한번 끝날 때마다 한칸을 출력한다.
- 만약 해당 위치 값이 1이 아닌 경우 Pairs for 다음에 ,를 출력한다.