강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

느루님의 프로필 이미지
느루

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

8. 등수구하기

저는 이렇게 풀어봤습니다!

작성

·

348

1

먼저 콘솔에 입력한 배열을 정렬하고, List 로 만들었습니다. 그리고 나서 indexOf() 메서드를 이용해서 콘솔에 입력한 점수값이 List의 몇 번째 인덱스에 위치하는지를 구한 후, +1 하여 grade 배열에 넣어주었습니다.

import java.util.*;
import java.util.stream.Collectors;

public class Main {
  private static int[] solution(int[] arr) {
    int[] grade = new int[arr.length];
    List<Integer> sortedArr = Arrays.stream(arr)
            .boxed()
            .sorted(Collections.reverseOrder())
            .collect(Collectors.toList());

    for (int i = 0; i < grade.length; i++) {
      grade[i] = sortedArr.indexOf(arr[i]) + 1;
    }

    return grade;
  }

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int[] arr = new int[n];

    for (int i = 0; i < n; i++) {
      arr[i] = sc.nextInt();
    }

    for (int i = 0; i < n; i++) {
      System.out.print(solution(arr)[i] + " ");
    }
  }
}

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

잘하신 코드입니다.

느루님의 프로필 이미지
느루

작성한 질문수

질문하기