プログラマーのウェクリーが2週目に挑戦


💬 他の人の草はビューを間違えて点数を獲得できませんでした.

📄 質問する


大学教授であるあなたは、相互評価を通じて学生たちに提出した宿題に加点したいと思っています.
学生ごとに得られる点数の平均値を求め、基準に従って単位を与えたいと思っています.
学生が自分の点数が唯一の最高点または唯一の最低点であると評価した場合、それ以外は平均値を求める.

💡 解答方法

  • 2 X 2アレイのスコアボードは、動作基準ではなく、標準を開いて計算されると思います.
  • は一意の値であり、除外された場合、平均値を求める総数も-1であるべきである.
  • 自分の点数が唯一の最高点である場合、最低点はflag値をfalseに付与する.
  • flag値をtrueに変更しますが、一意のスコアまたはそれ以上のスコアではありません.
  • フラグ値に基づいて合計数を変更し、平均および単位を計算します.
  • 🔥 コード#コード#

    class Solution {
        public String solution(int[][] scores) {
            int length = scores.length;
            int size[] = new int [length];
            StringBuilder answer = new StringBuilder();
     
            for(int i = 0; i < length; i++) {
                size[i] = length;
            }
            
            for(int i = 0; i < length; i++) {
                int max = 0; 
                int min = 101;
                boolean xcnt = true;
                boolean icnt = true;
                
                for(int j = 0; j < length; j++) {
                    if(i == j) {
                        if(scores[j][i] > max) {
                            max = scores[j][i];
                            xcnt = false;
                        }
                        else if(scores[j][i] < min) {
                            min = scores[j][i];
                            icnt = false;
                        }
                    }
                    else {
                          if(scores[j][i] >= max) {
                            max = scores[j][i];
                            xcnt = true;
                        }
                        else if(scores[j][i] <= min) {
                            min = scores[j][i];
                            icnt = true;
                        }
                    }
                }
                if(!xcnt || !icnt) {
                    scores[i][i] = 0; 
                    size[i]--;
                }
            }
            
            for(int i = 0; i < length; i++) {
                int total = 0;
                for(int j = 0; j < length; j++) {
                    total += scores[j][i];
                }
                int balance = total / size[i];
                
                if(balance >= 90) {
                    answer.append("A");
                }
                else if(balance >= 80) {
                    answer.append("B");
                }
                else if(balance >= 70) {
                    answer.append("C");
                }
                else if(balance >= 50) {
                    answer.append("D");
                }
                else {
                    answer.append("F");
                }
            }
            return answer.toString();
        }
    }

    👀 に感銘を与える


    これは以前解決できなかった問題で、解決して、気持ちがいいです!😊