개발자 톡

연습문제 톡 [HSAT 5회 정기 코딩 인증평가 기출] 성적 평가

같은 코드로 여러번 돌리는데 맞을때도 있고 틀릴때도 있네요 허허

등록일
2023-12-13 00:10:30
조회수
309
작성자
dbrhdwn123
import java.io.*;
import java.util.*;


public class Main {
    static int n;


    public static void main(String[] args) {


      Scanner sc = new Scanner(System.in);


      n = sc.nextInt();
      int last[] = new int [n];
      int lastcopy[] = new int [n];
      for(int i=0;i<3;i++){
        int people[] = new int [n];
        
        int score[] = new int [n];
        
        for(int j=0;j<n;j++){
          people[j] = sc.nextInt();
          score[j] = people[j];
          last[j] += people[j];
          lastcopy[j] += people[j];
        }
        calc(score, people);
    }
      calc(last, lastcopy);


     } 


  public static void calc(int score[], int people[]){
    
        int grade[] = new int [n];
    
        Arrays.sort(score);


        grade[score.length-1] = 1;
        
        for(int k=score.length-2;k>=0;k--){
          if(score[k+1] == score[k]){
            grade[k] = grade[k+1];
          }
          else{
            grade[k] = score.length-k; 
          }       
      }
      HashMap<Integer, Integer> map = new HashMap<>();


      for(int k=0;k<score.length;k++){
        map.put(score[k], grade[k]);
      }


        for(int k=0;k<people.length;k++){
          if(k == people.length-1){
            System.out.print(map.get(people[people.length-1]));
          }
          else{
            System.out.print(map.get(people[k]) + " ");
          }
        }
        System.out.println();
    
  }
}

코드는 이건데 0.0001초 차이로 같은 코드인데 맞기도하고 틀리기도 하네요 허허 어떤 방법이 확실할까요??
#[hsat_5회_정기_코딩_인증평가_기출]_성적_평가

이 카테고리의 톡 더보기