티스토리 뷰

반응형

 

문제

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 count, int[] scores) {
    int rank;
    for (int i=0; i<count; i++) {
      rank = 1;
      for (int j=0; j<count; j++) {
        if (scores[i] < scores[j]) {
          rank++;
        }
      }
      System.out.print(rank + " ");
    }
    return count;
  }
  
  public static void main(String[] args){
   Scanner scanner = new Scanner(System.in);
    int count = scanner.nextInt();
    int[] scores = new int[count];
    for (int i=0; i<count; i++) {
      scores[i] = scanner.nextInt();
    }

    Main main = new Main();
    main.solution(count, scores);
  }
}

(Time 164ms / Memory 27MB)

 

 

 

- for 문 한번으로 풀어보려고 머리 쓰다가 결국 풀이 영상에 나오는 방법으로 풀었다. for 문 두번으로 값을 비교해 등수값을 매기는 방법이다.

 

 

 

 

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함