Algorithm

[cospro] 합이 k가 되는 배수

taeveloper 2022. 2. 18. 16:14
02 COS PRO 1급 JAVA 2차
100%
[2차] 문제4) 합이 k 배가 되는 수 - JAVA
 
실습 내용

□ 문제설명

자연수가 중복 없이 들어있는 배열이 있습니다. 이 배열에서 합이 K의 배수가 되도록 서로 다른 숫자 세개를 고르는 방법은 몇 가지인지 세려고 합니다.
자연수가 들어있는 배열 arr와 arr의 길이 arr_len이 매개변수로 주어질 때, 이 배열에서 합이 K의 배수가 되도록 서로 다른 숫자 세개를 고르는 방법의 가짓수를 return 하도록 solution 함수를 완성해주세요.

□ 매개변수 설명

자연수가 들어있는 배열 arr와 arr의 길이 arr_len이 solution 함수의 매개변수로 주어집니다.
  • arr_len은 3 이상 100 이하의 자연수입니다.
  • arr에는 1 이상 1,000 이하의 자연수가 중복 없이 들어있습니다.
  • K는 1 이상 10 이하의 자연수입니다.

□ return 값 설명

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


□ 예시

arr arr_len K return
[1,2,3,4,5] 5 3 4

□ 예시설명

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

  • 1 + 2 + 3 = 6
  • 1 + 3 + 5 = 9
  • 2 + 3 + 4 = 9
  • 3 + 4 + 5 = 12
package com.example.codingtest.cospro.second;

public class 합이k가되는배수 {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        int K = 3;
        System.out.println(solution(arr, K));
    }

    public static int solution(int[] arr, int K){
        int answer = 0;
        for(int i = 0; i < arr.length; i++){
            for(int j = i + 1; j < arr.length; j++){
                for(int k = j + 1; k < arr.length; k++){
                    if((arr[i] + arr[j] + arr[k]) % 3 == 0) answer++;
                }
            }
        }
        return answer;
    }
}