반응형
안녕하세요. 성조입니다.
이 포스팅은 Python 3 버전을 기준으로 풀이됐습니다.
문제 출처
https://www.acmicpc.net/problem/3273
3273번: 두 수의 합
n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는
www.acmicpc.net
문제
n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 (ai, aj)쌍의 수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 수열의 크기 n이 주어진다. 다음 줄에는 수열에 포함되는 수가 주어진다. 셋째 줄에는 x가 주어진다. (1 ≤ n ≤ 100000, 1 ≤ x ≤ 2000000)
출력
문제의 조건을 만족하는 쌍의 개수를 출력한다.
코드
n = int(input())
sequence = list(map(int, input().split()))
x = int(input())
count = {}
for items in sequence:
count[items] = count.get(items, 0) + 1
pair_count = 0
for num in sequence:
complement = x - num
if complement in count:
pair_count += count[complement]
pair_count //= 2
print(pair_count)
풀이
올바르지 못한 내용이나 궁금한 내용이 있다면 언제든지 댓글로 지식을 얘기해 주시면 감사드리겠습니다.
더 좋은 포스팅 작성할 수 있도록 노력해 보겠습니다.
다음 포스팅 때 뵙겠습니다.
반응형
'백준 - Python' 카테고리의 다른 글
[백준 - 1476][Python] 날짜 계산 (0) | 2023.03.10 |
---|---|
[백준 - 7568][Python] 덩치 (2) | 2023.03.08 |
[백준 - 1789][Python] 수들의 합 (0) | 2023.03.06 |
[백준 - 14467][Python] 소가 길을 건너간 이유 1 (0) | 2023.03.05 |
[백준 - 1316][Python] 그룹 단어 체커 (0) | 2023.03.03 |