'거듭제곱 수열 자바'에 해당되는 글 1건

문제 :


 

1~X까지의 거듭제곱 수열이 있고,

이 거듭제곱 수열이

1,4,8,9,16 .... 각 제곱의 크기만큼 나열 되어있다.

 

N(1<= N <= 1000) 이란 수가 주어졌을 때

N번째 거듭제곱이 무엇인지 구하라

 


테스트케이스 :

입력 : 1

출력 : 1

 

입력 : 3

출력 : 8

 

입력 : 5

출력 : 16

 


import java.util.*;

public class FindPower { 
    public static void main(String[] args) {
        long start = System.nanoTime();
        Random random = new Random();
        int n = random.nextInt(10000)+1; // 1부터 10,000까지 랜덤한 수
        System.out.println(n);
        long sum = 0;
        
        // 중복 없이 순서대로 저장할 수 있는 TreeSet
        TreeSet<Integer> ts = new TreeSet<Integer>();

        for(int i=1; i<=n; i++){
            for(int j=2; j<=n; j++){
                double a = (double)Math.pow(i,j);
                ts.add((int) a);
            }
        }
        
        // TreeSet을 리스트로 바꿔서 N번째 인덱스 출력 준비
        
        List<Integer> sorted = new ArrayList<>(ts);
        long end= System.nanoTime();
        System.out.println("실행 시간: " + (end - start)/1000000 + "ms");
        
        // 인덱스는 0부터 시작이므로 N-1
        System.out.println(sorted.get(n-1));
    }
}

 

 

 

 

 

블로그 이미지

Ahan

책, 영화, 게임! 인생의 활력 요소가 되는 취미들을 하자!

,