티스토리 뷰

문제 링크

 

15650번: N과 M (2)

한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해

www.acmicpc.net

문제 풀이

n, m = map(int, input().split())

case = []
def recursive():
  if len(case) == m:
    print(' '.join(map(str, case)))
    return

  for i in range(1, n + 1):
    if i in case:
      continue
    if len(case) != 0:
      if i < case[-1]:
        continue
    case.append(i)
    recursive()
    case.pop()

recursive()

15650 N과 M (2) 입출력 예시

*key point: 15649 문제에서 조건문을 추가하여 case에 존재하는 마지막 요소와 추가할 요소를 비교해주면 된다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함