새소식

반응형
코딩 테스트

[백준] 15655 N과 M (6)

  • -
728x90
반응형

문제

  • N개의 자연수와 자연수 M이 주어졌을 때, 조건을 만족하는 길이가 M인 수열 모두 구하기
    • 1 <= M <= N <= 8
  • N개 자연수 중 M개를 고른 오름차순 수열
  • 조건을 만족하는 수열을 오름차순으로 출력하기

 

풀이 1

  • 조합 - 라이브러리 이용
  • N개 자연수 오름차순으로 정렬하고, 조합 구한 뒤 출력
from itertools import combinations

N, M = map(int, input().split())
numbers = list(map(int, input().split()))
numbers.sort()

for comb in combinations(numbers, M):
    print(*comb)

 

 

풀이 2

  • 재귀 이용하기
  • N개 자연수를 오름차순으로 정렬
  • 각 숫자를 돌아가면서 뽑되, 중복을 허용하지 않으므로 자신 이후의 숫자만 뽑기 후보로 넣음

 

N, M = map(int, input().split())
numbers = list(map(int, input().split()))
numbers.sort()

comb = []
def solve(depth, numbers):
    if depth == 0 :
        print(*comb)
        return

    for i in range(len(numbers)):
        comb.append(numbers[i])
        solve(depth-1, numbers[i+1:])
        comb.pop()

solve(M, numbers)

 

References

  • 백준 15655
  • 2023.05.02 오늘의 문제
반응형

'코딩 테스트' 카테고리의 다른 글

[프로그래머스] 표 병합  (0) 2023.05.03
[프로그래머스] 인사고과  (0) 2023.05.03
[백준] 17406 배열 돌리기 4  (0) 2023.05.02
[백준] 15656 N과 M (7)  (0) 2023.05.02
[백준] 1449 수리공 항승  (0) 2023.05.02
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.