아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

비트 패턴 생성기

면접 대비

시간 제한1초메모리 제한128 MB

요약
각 (n, k) 쌍마다 1이 정확히 k개인 n비트 문자열을 값이 큰 순서대로 출력하고, 쌍 사이에는 빈 줄을 넣는다.
난이도

보통10점 중 5점

유형
백트래킹, 재귀, 비트 연산, 조합론
정답자
아직 제출이 없습니다

문제

주어진 각 쌍 n, k에 대해, 길이가 n이고 정확히 k개의 1을 포함하는 모든 비트 패턴을 출력하는 프로그램을 작성하세요. 패턴은 이진수로 간주했을 때의 값이 큰 것부터 작은 것 순서(내림차순)로 출력합니다. 입력에는 여러 개의 n, k 쌍이 주어지며, 각 쌍마다 이 작업을 반복합니다.

입력

첫 번째 줄에는 n, k 쌍의 개수 T가 주어집니다. 이어지는 각 쌍은 두 정수 n과 k로 이루어지며, 두 정수는 하나의 공백으로 구분됩니다. 모든 입력은 0<n≤300 < n \le 30, 0≤k<80 \le k < 8, n≥kn \ge k를 만족합니다.

출력

각 n, k 쌍마다 먼저 The bit patterns are라는 한 줄을 출력한 뒤, 조건을 만족하는 모든 비트 패턴을 내림차순으로 한 줄에 하나씩 출력합니다. 각 패턴은 앞자리 0(leading zero)을 포함하여 정확히 n자리로 출력해야 합니다. 연속한 두 쌍의 출력 사이에는 빈 줄을 하나 넣어 구분합니다.

예제1

  1. 예제 1

    입력
    3
    2 1
    2 0
    4 2
    
    예상 출력
    The bit patterns are
    10
    01
    
    The bit patterns are
    00
    
    The bit patterns are
    1100
    1010
    1001
    0110
    0101
    0011