프로그래머스 LEVEL 2(줄 서는 방법)
-
사용 언어 : javascript
-
해결 날짜 : 2022-09-24
- 해결 방법 :
- (k - 1) / 현재 자리 수 제외한 수로 만들 수 있는 경우의 수 = 현재 자리에 들어갈 수
- 현재 만들 수 있는 경우의 수를 current_case에 저장
- arr에서 splice로 현재 값 제거
- 회고 :
- 처음에 Math.floor() 대신 parseInt()를 사용했는데 k가 0인 경우 음수가 되는 문제 발생
-
코드
function solution(n, k) { const answer = []; const arr = Array.from({ length: n }, (_, i) => i + 1); let current_case = arr.reduce((acc, cur) => { return acc * cur }, 1); while (arr.length) { current_case /= arr.length; answer.push(...arr.splice(Math.floor((k - 1) / current_case), 1)); k %= current_case; } return answer; }
- 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges