문제
n개의 정수가 입력으로 주어지고, 이 중 서로 다른 위치에 있는 두 개의 수를 뽑아 더했을 때 k가 되는 가짓수를 구하는 프로그램을 작성해보세요.
입력
5 9
4 6 5 3 7
출력
- 입력으로 주어진 수들 중 서로 다른 위치에 있는 두 개의 수를 골랐을 때 두 수의 합이 k가 되는 가짓수를 출력
2
(4, 5), (6, 3)
코드
n, k = tuple(map(int, input().split()))
arr = list(map(int, input().split()))
count=dict()
#배열을 앞에서부터 순회하며 쌍을 만들어준다.
for elem in arr:
diff=k-elem #k 값에서 원소 값을 빼어 쌍을 만들어준다..!
#차이만큼 존재하는 수 더해 쌍의 수 세어줌
if diff in count:
ans+=count[diff]
#현재 숫자의 개수를 세어준다.
if elem in count:
count[elem]+=1
else:
count[elem]=1
print(ans)'[Algorithm]' 카테고리의 다른 글
| [heapq] 정원 입장은 선착순 (0) | 2023.12.27 |
|---|---|
| SortedDict (0) | 2023.05.26 |
| 백트래킹- 조합 구현 (0) | 2023.05.23 |
| 시뮬레이션 - 1차원 폭발 게임 (0) | 2023.05.14 |
| [탐색] 전략 추려내기 - ABC 줄세우기 (0) | 2023.05.10 |