본문으로 바로가기
728x90
반응형

▷ 문제

N명의 학생의 국어점수가 입력되면 각 학생의 등수를 입력된 순서대로 출력하는 프로그램을 작성하세요.

같은 점수가 입력될 경우 높은 등수로 동일 처리합니다.

즉 가장 높은 점수가 92점인데 92점이 3명 존재하면 1등이 3명이고 그 다음 학생은 4등이 됩니다.

* 입력

첫 줄에 N(3<=N<=100)이 입력되고, 두 번째 줄에 국어점수를 의미하는 N개의 정수가 입력됩니다.

* 출력

입력된 순서대로 등수를 출력합니다.

▷ 입력 예시

5

87 89 92 100 76

▷ 출력 예시

4 3 2 1 5

▷ 풀이

import java.util.Scanner;

public class Main {
    public int[] solution(int n, int[] arr){
        int answer[] = new int[n];        

        for (int i = 0; i < n; i++) {
          int cnt = 1;
          for (int j = 0; j < n; j++) {
            if(arr[i] < arr[j]){
              cnt++;
            }
          }
          answer[i] += cnt;
        }

        return answer;
    }

    public static void main(String[] args) {
        Main main = new Main();
        Scanner kb = new Scanner(System.in);
        int n = kb.nextInt();        
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
          arr[i] = kb.nextInt();
        }
        kb.close();

        for(int x : main.solution(n, arr)){
          System.out.print(x + " ");
        }
    }
}

▷ 핵심 포인트

1. cnt 변수를 사용하여 손쉽게 문제를 풀 수 있습니다.

반응형