Files
Coding-Practice/programmers/줄 서는 방법/solution.java
T

21 lines
650 B
Java
Raw Normal View History

2023-02-01 23:44:34 +09:00
// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/12936
import java.util.*;
class Solution {
public int[] solution(int n, long k) {
ArrayList<Integer> hs = new ArrayList<>();
int[] test = new int[n];
int pos, len = n;
long div, tmp, fact = 1;
for(int f = n; f >= 2; f--) fact *= f;
for(int a = 1; a <= len; a ++) hs.add(a);
for(int a = 0; a < len; a++, tmp = pos*div, k -= tmp, fact /= n, n--){
div = (fact/n);
pos = (int)((k-1)/div);
test[a] = hs.get(pos);
hs.remove(pos);
}
return test;
}
}