줄 서는 방법.

·2026년 6월 2일

해결 전략

  • 몫과 나머지를 가지고 접근하는 문제인듯 하다.

  • 앞번호가 1인 것들의 몫은 0으로 하고,
    -> 몫이 0이면 앞에는 1로 위치
    -> 몫이 1이면 앞에는 2로 위치하는 방식으로 생각함.

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(int n, long long k) {
    vector<int> answer;
    
    
    
    // 순열로 표현했을때 
    
    // 20! => 360만 * 10의 10승... 
    
    // k가 20!이면 
    
    // n자리 수에서 첫번째 자리변경하지 않은상태에의 
    // 끝까지 가는 숫자는 (n - 1)! 
    // 여기서는 (4 - 1)! : 3! => 3 * 2 * 1 이다.
    
    // n : 4개 중에서 k : 1이라고 한다면
    
    // (n-1)! 을 가지고 진행하는데, 
    
    // k / 3!  , k % 3!
    // 1 / 3!  , 1 % 3!
    // 
    
    // 몫 전부다 0? 
    // 1 2 3 4  - 1
    // 1 2 4 3  - 2 
    // 1 3 2 4  - 3
    // 1 3 4 2  - 4
    // 1 4 2 3  - 5 
    // 1 4 3 2  - 6 
    
    // 나머지값들 어떻게 할까... 
    
    
    
    // 몫 : 전부 1
// k: 7    
    // 2 1 3 4 - 1
    // 2 1 4 3 - 2
    // 2 3 1 4 - 3
    // 2 3 4 1 - 4
    // 2 4 1 3 - 5
    // 2 4 3 1 - 6
    
// k : 13 : 몫 : 2
    // 3 1 2 4 - 1 
    // 3 1 4 2 - 2
    // 3 2 1 4 - 3
    // 3 2 4 1 - 4 
    // 3 4 1 2 - 5
    // 3 4 2 1 - 6 
    
    // 다시 3!로 나눌까?
    // 아니면 변경되었으니까. 2!로 나눠야 하나... 
    
    
    
    return answer;
}
profile
🔥🔥🔥

0개의 댓글