Notice
Recent Posts
Recent Comments
준호씨의 블로그
hackerrank - Divisible Sum Pairs - Python3 본문
반응형
문제: https://www.hackerrank.com/challenges/divisible-sum-pairs/problem
n개의 정수로 이루어진 배열 ar=[ar[0], ar[1], ..., ar[n-1]]과 양의 정수 k가 주어집니다. i, j 숫자 짝을 구하여 출력합니다. i <j이고 ar[i] + ar[j]는 k로 나누어 떨어져야 합니다.
예를 들어, ar=[1,2,3,4,5,6]과 k=5가 있습니다. [1,4], [2,3], [4,6] 세 개의 짝이 요건을 충족합니다.
Function Description
divisibleSumPairs 함수를 완성합니다. 요건에 만족하는 숫자 짝의 개수를 반환해야 합니다.
Sample Input
6 3
1 3 2 6 1 2
Sample Output
5
Explanation
풀이
k=3으로 나누어 떨어지는 합의 쌍은 5개입니다.
ar[0] + ar[2] = 1 + 2 = 3
ar[0] + ar[5] = 1 + 2 = 3
ar[1] + ar[3] = 3 + 6 = 9
ar[2] + ar[4] = 2 + 1 = 3
ar[4] + ar[5] = 1 + 2 = 3
코드 템플릿
#!/bin/python3
import math
import os
import random
import re
import sys
# Complete the divisibleSumPairs function below.
def divisibleSumPairs(n, k, ar):
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
nk = input().split()
n = int(nk[0])
k = int(nk[1])
ar = list(map(int, input().rstrip().split()))
result = divisibleSumPairs(n, k, ar)
fptr.write(str(result) + '\n')
fptr.close()
divisibleSumPairs 함수를 완성합니다.
모든 쌍의 숫자의 합을 구한 다음 k로 나누어 떨어지는 게 몇 개인지 찾으면 됩니다.
def divisibleSumPairs(n, k, ar):
answer = 0
for i in range(len(ar)):
for j in ar[i+1:]:
if (ar[i] + j) % k == 0:
answer += 1
return answer
반응형
'개발이야기 > PS - Problem Solving, 알고리즘' 카테고리의 다른 글
Codility - BinaryGap - Python (0) | 2021.03.16 |
---|---|
hackerrank - Migratory Birds - Python3 (0) | 2020.05.29 |
hackerrank - Birthday Chocolate - Python3 (0) | 2020.05.23 |
hackerrank - Breaking the Records - Python3 (0) | 2020.05.17 |
hackerrank - Between Two Sets - Python3 (0) | 2020.05.16 |
Comments