From f567c192bf3f7aeebec26e439b4d1d4ee768400e Mon Sep 17 00:00:00 2001 From: rl544 <111494264+rl544@users.noreply.github.com> Date: Wed, 1 Feb 2023 23:55:46 +0900 Subject: [PATCH] =?UTF-8?q?updated=20at=202023.=202.=201.=20=EC=98=A4?= =?UTF-8?q?=ED=9B=84=2011:55:46?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- programmers/줄 서는 방법/solution.java | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/programmers/줄 서는 방법/solution.java b/programmers/줄 서는 방법/solution.java index e2474f9..f5b8338 100644 --- a/programmers/줄 서는 방법/solution.java +++ b/programmers/줄 서는 방법/solution.java @@ -1,21 +1,15 @@ // [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/12936 -import java.util.*; +import java.util.ArrayList; class Solution { public int[] solution(int n, long k) { - ArrayList hs = new ArrayList<>(); - int[] test = new int[n]; + ArrayList al = new ArrayList<>(); + int[] answer = 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; + for(int a = 1; a <= len; a ++) al.add(a); + for(int a = 0; a < len; div = fact/n, pos = (int)((k-1)/div), answer[a] = al.remove(pos), k -= pos*div, fact /= n, n--, a++) continue; // 별 의미는 없지만 이런 식으로 안의 내용을 for 괄호 내에 다 때려박아서 줄일수 있다. + return answer; } } \ No newline at end of file