「テストコード」のない数値を追加

6904 ワード

欠落した数値を追加


質問元:テストコード

質問する


パラメータは、0から9までの数値の一部を含む配列番号です.numbersで見つからない0から9までのすべての数字は、solution関数を完了して1つの数を返します.

せいげんじょうけん

  • 1≦数字の長さ≦9
  • 0≦数字の全数≦9
  • numbersは全ての数字が異なる.
  • I/O例


    numbers
    result
    [1,2,3,4,6,7,8,0]
    14
    [5,8,4,0,6,7,9]
    6

    I/O例説明


  • I/O例#1
    -5、9はnumbersにありませんので、5+9=14を返さなければなりません.

  • I/O例#2
    -1、2、3は番号ではなく、1+2+3=6を返さなければなりません.
    質問元:テストコード

    問題を解く


    0から9までの間のランダムな数字が配列に入り、その配列の数字をチェックする必要があります.
    また、この数字の配列長は常に1または9以下に制限されています.
    そこで、9のfor文を繰り返し、整数型iniindexを用いて、まずその配列に数字があるかどうかをチェックし、ない場合はない数字を他の配列に置いて、その結果を加算します.
  • //먼저 들어올 숫자배열을 정의하고 
    let number = [1,2,3,4,6,7,8,0];
    //추가적으로 받을 배열과 그 배열의 value의 합을 누적시킬 변수를 만든다. 
    let answer = [];
    let result = 0;
    //코드테스트는 함수형으로 만들어 입출력해야한다. 
    function solution(numbers){
    	//다음 for구문으로 0부터 9까지  반복시키면서 index와 동일한 value가 그 배열에 있는지 검사해야 겠다. 
    	for(let i = 0; i <= 9; i ++){
    	//검사할때 그 값이 없으면 answer에다가 해당하는 index를 push하면 된다. 
      	if(!(numbers.includes(i))){
         		answer.push(i)
        	}
        }
      //answer에 담긴 만큼 배열을 돌아 result 각 값들을 더해주자 
      for(let i = 0; i < answer.length; i++){
        result += answer[i]
      }
      //result를 리턴시켜 출력하자
      return result;
    }
    
    //함수 사용 부
    solution(number)
    数字と数字を区別するのは、パラメータとして受信した値を区別するために書かれた違いです.
    他の人の解答を見ると、コードがずいぶん簡略化されているので、参考にしてみましょう.

    他人を解く

    function solution(numbers) {
       let cnt = 0;
       for(let i=0; i<10; i++){
         //i가 없으면 바로 cnt에 i를 누적합을 만들어 리턴하였다. 
           if(!(numbers.includes(i))) cnt+= i
       }
       return cnt;
    }
    並べ替えずに同じ値を出力します.コードは不要なものを減らすことができるようです.武芸を知らない人の動作がもっと大きいように、私にも足りないところがたくさんあります.動作の多いコードを書いているようです.簡単明瞭!考えましょう.