본문 바로가기
알고리즘 문제풀이/인프런

[알고리즘] 2-8 등수 구하기(인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의)

by jeonghaemin 2021. 5. 14.
728x90

인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 간략한 문제 설명, 예습 풀이 코드, 강의에서 설명하는 풀이 코드를 정리하고 있습니다.

  • 문제 링크 : https://cote.inflearn.com/contest/10/problem/02-08
  • 문제 설명 : n명의 학생의 점수를 입력받고 등수를 입력된 순서대로 출력(동일 점수는 높은 등수로 처리. 예를 들어 100점이 3명이면 3명 모두 1등이고, 그 다음 사람은 4등)

풀이

  • 이중 for문을 사용하여 다른 사람들과 점수 비교를 통해 등수를 계산
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

//등수 구하기
public class Main2_8 {

    /**
     * @param n : 학생 수
     * @param arr : 점수
     * @return 등수
     */
    public static int[] solution(int n, int[] arr) {
        int[] retArr = new int[n];

        for (int i = 0; i < n; i++) {
            int count = 1;

            for (int j = 0; j < n; j++) {
                if (arr[j] > arr[i]) {
                    count++;
                }
            }

            retArr[i] = count;
        }

        return retArr;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(br.readLine());
        int[] arr = new int[n];

        StringTokenizer st = new StringTokenizer(br.readLine());
        for (int i = 0; st.hasMoreTokens(); i++) {
            arr[i] = Integer.parseInt(st.nextToken());
        }

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

댓글