0411小数点以下を作成


質問する


与えられた数字のうち3つの数字を小数に加算すると、個数を求めてみます.数値を持つ配列numsをパラメータとする場合は、solution関数を完了してnumsの3つの異なる数値の小数を返します.

せいげんじょうけん

  • numsに含まれる数字は3つまたは50個を超えない.
  • numsの各要素は1000より大きい自然数であり、重複する数字は含まれていない.
  • I/O例


    numsresult[1,2,3,4]1[1,2,7,6,4]4

    I/O例説明


    I/Oサンプル#1[1,2,4]を使用して7を作成できます.
    I/O例#2
    [1,2,4]を使用して7を作成できます.
    [1,4,6]を使用して11を作成できます.
    [2,4,7]は、13を作成するために使用することができる.
    [4,6,7]を使用して17を作成できます.

    きほんコード

    class Solution {
        public int solution(int[] nums) {
            int answer = -1;
    
            // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
            System.out.println("Hello Java");
    
            return answer;
        }
    }

    正しいコード

    class Solution {
        public int solution(int[] nums) {
            int answer = 0;
            for(int i = 0; i<nums.length-2;i++){
                for(int j = i+1; j<nums.length-1;j++){
                    for(int k = j+1; k<nums.length; k++){
                        int sum = nums[i] + nums[j] + nums[k];
                        int a = 0;
    
                        for(int x = 2;  x <=sum/2; x++){
                            if(sum%x==0) {
                                a++; 
                                break;
                            }
                        }
                        if(a==0) answer++;
                    }
                }
            }
    
            return answer;
        }
    }

    問題を解く


    まず3つ選んでから作るので、forゲートを3つ返却します.繰り返し文の回数を最小限に抑えるためにnums.legenthの後ろに-2と-1を追加しましたfor文をもう一つ返して、次の小数点かどうかを尋ねました.sum%xの値が0の場合、aを増やし、切断方法で記述します.