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

kueeng8008님의 프로필 이미지
kueeng8008

작성한 질문수

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

8. 등수구하기

Java 알고리즘 문제 풀이 02-08 컴파일 에러 문의

작성

·

207

0

안녕하세요!

IntelliJ로 실행해봤을 때는 이상 없는데

채점사이트로 실행 시 컴파일 에러로 잡혀서 어느 부분이 문제인지 알려주시면 정말 감사합니다!

 

import java.util.*;

class Main{
    public int[] solution(int n, int[] arr) {
        HashMap<Integer, Integer> rankMap = new HashMap<>();
        ArrayList<Integer> sortList = new ArrayList<>(){{
            for(int i = 0; i < n; i++) add(arr[i]);
        }};
        int[] answer = new int[n];
        sortList.sort(Collections.reverseOrder());
        for (int i = 0; i < n; i++) {
            if (i == 0) rankMap.put(sortList.get(i), 1);
            else if (sortList.get(i-1).equals(sortList.get(i))) continue;
            else rankMap.put(sortList.get(i), i+1);
        }
        for (int i = 0; i < n; i++){
            answer[i] = rankMap.get(arr[i]);
        }
        return answer;
    }
    public static void main(String[] args) {
        // 실행  시간 측정
        // long beforeTime = System.currentTimeMillis();
        // 측정 코드 시작
        Main T = new Main();
        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 : T.solution(n, arr)) System.out.print(i + " ");
        sc.close();
        // 측정 코드 끝
        // long afterTime = System.currentTimeMillis();
        // long diffTime = afterTime-beforeTime;
        // System.out.println("실행시간(ms) " + diffTime);
    }
}

답변 1

0

kueeng8008님의 프로필 이미지
kueeng8008
질문자

제너릭을 사용할 시 익명 클래스 구현 미지원하는 것으로 확인해서

ArrayList 선언 이후에 따로 for문을 돌려 값을 초기화하는 것으로 해결했습니다. 감사합니다!

kueeng8008님의 프로필 이미지
kueeng8008

작성한 질문수

질문하기