From 16cf353b65951fd55b5b5c6ece66bf772f1cc95b Mon Sep 17 00:00:00 2001 From: rl544 <111494264+rl544@users.noreply.github.com> Date: Wed, 1 Feb 2023 23:44:34 +0900 Subject: [PATCH] =?UTF-8?q?uploaded=20at=202023.=202.=201.=20=EC=98=A4?= =?UTF-8?q?=ED=9B=84=2011:44:33?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- programmers/줄 서는 방법/solution.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 programmers/줄 서는 방법/solution.java diff --git a/programmers/줄 서는 방법/solution.java b/programmers/줄 서는 방법/solution.java new file mode 100644 index 0000000..e2474f9 --- /dev/null +++ b/programmers/줄 서는 방법/solution.java @@ -0,0 +1,21 @@ +// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/12936 + +import java.util.*; +class Solution { + public int[] solution(int n, long k) { + ArrayList 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; + } +} \ No newline at end of file