์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

๋ฌธ์ œ

https://www.acmicpc.net/problem/15650

์˜ˆ์ œ ์ž…๋ ฅ 1

3 1

์˜ˆ์ œ ์ถœ๋ ฅ 1

1
2
3

์˜ˆ์ œ ์ž…๋ ฅ 2

4 2

์˜ˆ์ œ ์ถœ๋ ฅ 2

1 2
1 3
1 4
2 3
2 4
3 4

๋‹ต์•ˆ

import sys
from itertools import combinations

input = sys.stdin.readline

n, m = map(int, input().split())
n_arr = [i for i in range(1, n+1)]
arr = list(combinations(n_arr, m))

for i in arr:
    print(i[0], end=" ")
    for j in range(1, m):
        print(i[j], end=" ")
    print()

ํ’€์ด

  1. ์ˆ˜๋„์ฝ”๋“œ

     N, M <- input
     N_arr = 1๋ถ€ํ„ฐ N๊นŒ์ง€ ๊ฐ’๋“ค์„ ํฌํ•จํ•œ ๋ฆฌ์ŠคํŠธ
     arr = list(combinations(N_arr, M)) # nCr
        
     for i in arr:
     		print(i[0], end=" ")
     		for j in range(1, m):
     				print(i[j], end=" ")
     		print()
    

ํ’€์ด:

  1. N, M์„ ์ž…๋ ฅ ๋ฐ›์Œ.
  2. N_arr ๋ฆฌ์ŠคํŠธ๋ฅผ ์„ ์–ธํ•˜๊ณ , 1๋ถ€ํ„ฐ N๊นŒ์ง€ ๋‹ด์Œ โ†’ i for i in range(1, N+1)
  3. arr์— N_arr ์•ˆ์—์„œ M๊ฐœ์˜ ๊ฐ’๋“ค์„ ์„ ํƒํ•˜๋Š” combinations ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌ์ŠคํŠธ๋กœ ์ €์žฅ
  4. arr์„ ์ˆœํšŒํ•˜๋ฉฐ ์ถœ๋ ฅ
  5. M๊ฐœ๋ฅผ ์„ ํƒํ•˜๋Š”๋ฐ, ์œ„ ์ถœ๋ ฅ์—์„œ i[0]์„ ์ถœ๋ ฅํ–ˆ์œผ๋ฏ€๋กœ, ์ด์ œ ๋‚จ์€๊ฑด i[1], i[2], โ€ฆ i[M-1]์ด ๋‚จ์Œ. ์ด๋ฅผ ์ˆœํšŒ

ํšŒ๊ณ 

  • ๋ฐฑํŠธ๋ž˜ํ‚น ๋ฌธ์ œ์ธ๋ฐ combinations๋กœ ํ’€์–ด๋ฒ„๋ ธ๋‹ค.
  • combinations๊ฐ€ ์žฌ๊ท€๋กœ ๊ตฌํ˜„๋˜์–ด์žˆ์„๊ฑฐ๊ฐ™๊ธด ํ•œ๋ฐ, ์•Œ์•„๋ณด๊ณ  ์—ฌ๊ธฐ์— ์ •๋ฆฌํ•˜์ž.
  • combinations๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์„ ๋“ฏ ํ•˜๋‹ค.

ํƒœ๊ทธ: ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ:

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ