본문 바로가기
Python/알고리즘

[COS PRO 1급 #2-4] 합이 k배가 되는 수

by 포푸리 (POPOOLY) 2023. 2. 19.
반응형

문제설명

자연수가 중복 없이 들어있는 리스트가 있습니다. 이 리스트에서 합이 K의 배수가 되도록 서로 다른 숫자 세개를 고르는 방법은 몇 가지인지 세려고 합니다.

자연수가 들어있는 리스트 arr가 매개변수로 주어질 때, 이 리스트에서 합이 K의 배수가 되도록 서로 다른 숫자 세개를 고르는 방법의 가짓수를 return 하도록 solution 함수를 완성해주세요.

매개변수 설명

자연수가 들어있는 리스트 arr가 solution 함수의 매개변수로 주어집니다.
* arr의 길이는 3 이상 100 이하입니다.
* arr에는 1 이상 1,000 이하의 자연수가 중복 없이 들어있습니다.
* K는 1 이상 10 이하의 자연수입니다.

return 값 설명

리스트에서 합이 K의 배수가 되도록 서로 다른 숫자 세개를 고르는 방법의 가짓수를 return 해주세요.
* 그러한 방법이 없다면 0을 return 하면 됩니다.

예시

| arr             | K | return |
|-----------------|---|--------|
| [1, 2, 3, 4, 5] | 3 | 4      |

예시 설명

다음과 같이 4가지 방법이 있습니다.

* 1 + 2 + 3 = 6
* 1 + 3 + 5 = 9
* 2 + 3 + 4 = 9
* 3 + 4 + 5 = 12

문제 코드

def solution(arr, K):
    #여기에 코드를 작성해주세요.
    answer = 0
    return answer

풀이

def solution(arr, K):
	answer = 0
    
    # arr의 세 자연수의 합이 K의 배수이면 answer += 1
	for i in range(len(arr)):
    	for j in range(i+1, len(arr)):
        	for k in range(k+1, len(arr)):
            	if arr[i] + arr[j] + arr[k] % K == 0:
                	answer += 1 
    return answer

 

댓글