JAVA:解答小数


📝 小数を解く
💬 与えられた数字のうち3つの数字を小数に加算すると、個数を求めてみます.数値を持つ配列numsをパラメータとする場合は、solution関数を完了してnumsの3つの異なる数値の小数を返します.
ex) nums = [1, 2, 3, 4], result = 1/ nums = [1, 2, 7, 6, 4], result = 4
💡 私の答え
💬 少数でない場合を先に処理し、else if文を使用して少数の場合を処理します.
少数の場合を先に処理して、少数でない場合も一緒に処理して、かえって少数でない場合を先に処理したほうがいいです.
これは簡単な難易度ですが、想像以上に時間がかかるので、記録のために書かれています.
👉 例
public int solution(int[] nums) {
   int answer = 0;
   for(int i = 0; i < nums.length - 2; i++) {        
   // i의 최댓값이 어디까지인 지 인지!
      for(int j = i + 1; j < nums.length - 1; j++) { 
      // j의 최댓값이 어디까지인 지 인지!
         for(int k = j + 1; k < nums.length; k++) {
            int temp = nums[i] + nums[j] + nums[k];
            for(int n = temp - 1; n > 0; n--) {
               if(n != 1 && (temp % n) == 0)         
               // 나누는 수가 1이 아닌 데도 나눠지는 경우 => 소수가 아닌 경우 
                  break;
               else if(n == 1)   
               // 나누는 수가 1인경우 => 소수인 경우                         
                  answer++;   
             }
          }
       }
   }
   return answer;
}
+関数の使い方の練習が必要
💡 他人の解答
💬 sqrt()関数を使用して平方根を求める
👉 例
public Boolean isPrime(int num){ // num이 위의 temp와 같은 값
   int cnt = 0;
   for(int i = 1; i <= (int)Math.sqrt(num); i ++){
       if(num % i == 0) cnt += 1; 
   }
   return cnt == 1;
}
Reference
プログラマー、少数を解いています
問題が発生した場合に削除