๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ProgramSolve/Baekjoon

[BOJ] 15657๋ฒˆ - N๊ณผM(8) (Python)

by SooooooooS 2023. 10. 5.
728x90

๐Ÿ› ๏ธ ๋ฌธ์ œ ๐Ÿ› ๏ธ


๐Ÿ—’๏ธ ์„ค๋ช… ๐Ÿ—’๏ธ

๋ฐฑํŠธ๋ž˜ํ‚น ์—ฐ์Šตํ•˜๊ธฐ ํŽธํ•œ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

์˜ค๋Š˜ ํ’€๋ฉด์„œ ํ‹€๋ ธ๋˜ ์ด์œ ์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‚จ๊ฒจ๋†“์œผ๋ ค๊ณ  ํ•œ๋‹ค.

์ •์ˆ˜๋ฅผ ์ •๋ ฌํ•˜๋Š๋ƒ VS ๋ฌธ์ž๋ฅผ ์ •๋ ฌํ•˜๋Š๋ƒ

๋‚ด๊ฐ€ ์ž˜๋ชป ์ƒ๊ฐํ–ˆ๋˜ ๋ถ€๋ถ„์€ ํƒ€์ž…์„ ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  ์ •๋ ฌํ•œ ๊ฒƒ์ด๋‹ค. 

์ฒ˜์Œ์—๋Š” ๊ฒฐ๊ณผ๋ฅผ ์‰ฝ๊ฒŒ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์žํ˜• ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์–ด์ง„ ์˜ˆ์ œ๋Š” ์ „๋ถ€ ํ†ต๊ณผํ•ด ์ œ์ถœํ–ˆ์ง€๋งŒ ํ‹€๋ ธ๋‹ค.

๋‹ค๋ฅธ ๋™์ž‘์˜ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‚˜ ๊ณ ๋ฏผํ•ด๋ณด์•˜์ง€๋งŒ ์—†์—ˆ๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ•ด๋ด๋„ ๋™์ž‘์€ ์™„๋ฒฝํ–ˆ๋‹ค.

๋‹จ ํ•˜๋‚˜ ๋‹ค๋ฅธ ์ ์ด ์ž…๋ ฅ๋ฐ›์€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด์—ˆ๋Š”๋ฐ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ [์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ์ˆ˜๋Š” 10,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜]์ด๋ฏ€๋กœ ์ด๋Š” ์ •์ˆ˜๋กœ ์ •๋ ฌํ•ด์•ผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ •๋ ฌ๋œ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๋‹ค.


๐Ÿ€ ํ’€์ด ๐Ÿ€

import sys

n, m = map(int, sys.stdin.readline().split())
nums = sorted(list(map(int, sys.stdin.readline().strip().split())))

def dfs(count, result, idx) :
    if count == m :
        print(result)
        return
    for i in range(idx, n) :
        dfs(count+1, result+str(nums[i])+" ", i)

dfs(0, '', 0)
728x90