Skip to content

Commit c65220d

Browse files
committed
[BOJ]#15654.N๊ณผM(5)./Silve3/55min
https://www.acmicpc.net/problem/15654
1 parent 16046fb commit c65220d

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
"""
2+
#15654. N๊ณผ M (5)
3+
https://www.acmicpc.net/problem/15654
4+
5+
- N๊ฐœ์˜ ์›์†Œ๋“ค๋กœ ๊ตฌ์„ฑ๋œ ์ˆ˜์—ด ์ค‘, ๊ฐœ์ˆ˜๊ฐ€ m๊ฐœ์ธ ์ˆ˜์—ด๋“ค ์ฐพ๊ธฐ
6+
- ์‚ฌ์ „์ˆœ = ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ถœ๋ ฅ
7+
- ์ค‘๋ณต๋˜๋Š” ์ˆ˜์—ด => ์žฌ๊ท€
8+
# TIL
9+
q = [1,2,3]
10+
print(*q) > 1,2,3 # ํ•œ์ค„๋กœ ๋ฆฌ์ŠคํŠธ ์›์†Œ๋“ค ์ถœ๋ ฅ ๊ฐ€๋Šฅ
11+
"""
12+
import sys
13+
14+
#0. ์ž…๋ ฅ ๋ฐ›๊ธฐ
15+
N , M = map(int, sys.stdin.readline().split())
16+
# M๊ฐœ์˜ ์ˆ˜์—ด ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  ๋ฐฐ์—ด
17+
result = [0 for _ in range(M)]
18+
# ํ•ด๋‹น ์›์†Œ ์‚ฌ์šฉ ์—ฌ๋ถ€ check ํ•จ์ˆ˜
19+
check = [0 for _ in range(N)]
20+
# n ๊ฐœ ์ˆ˜์—ด ์›์†Œ ํ›„๋ณด๊ตฐ ์ €์žฅํ•˜๋Š” ๋ฆฌ์ŠคํŠธ
21+
elements = list(map(int, sys.stdin.readline().split()))
22+
#์˜ค๋ฆ„ ์ฐจ์ˆœ ์ •๋ ฌ for ์˜ค๋ฆ„์ฐจ์ˆœ ๊ฒฐ๊ณผ ์ถœ๋ ฅ
23+
elements.sort()
24+
# print(elements)
25+
26+
# 1. m ๊ฐœ ์ˆ˜์—ด ์ฐพ๊ธฐ by ์žฌ๊ท€ ํ•จ์ˆ˜
27+
"""
28+
def fun(n) :
29+
if ์žฌ๊ท€์ข…๋ฃŒ ์กฐ๊ฑด
30+
else :
31+
์žฌ๊ท€๋กœ ๋‹ค์Œ ์Šคํ…Œ์ด์ง€๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „์— ์‹คํ–‰ํ•˜๋Š” ์ฝ”๋“œ๋“ค
32+
fun(n+-1) # ์žฌ๊ท€
33+
์ด์ „ ์žฌ๊ท€ ํ•จ์ˆ˜์˜ ์žฌ๊ท€์ข…๋ฃŒ ์กฐ๊ฑด ์ข…๋ฃŒ ํ›„ ์‹คํ–‰
34+
35+
"""
36+
37+
# start point
38+
def perm(m) : # m : result ์•ˆ์— ๋“ค์–ด๊ฐ€์žˆ๋Š” ์›์†Œ ๊ฐœ์ˆ˜ = ๋„ฃ์„ ์œ„์น˜
39+
if m == M : # result ๊ฐœ์ˆ˜ ๊ฐ™์œผ๋ฉด = ์žฌ๊ท€ ์ข…๋ฃŒ ์กฐ๊ฑด
40+
print(*result) # ์ถœ๋ ฅ
41+
42+
else :
43+
for i in range(N) : # ๋” ๋ฝ‘์•„์•ผ ํ•˜๋ฉด , N ๊ฐœ ํ›„๋ณด๊ตฐ ์ค‘์— ํ™•์ธ
44+
if check[i] == 0 : #ํ˜„์žฌ ํ›„๋ณด์›์†Œ(i) ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•จ
45+
result[m] = elements[i] # result์— ๋“ฑ๋ก
46+
check[i] = 1 # ์‚ฌ์šฉ์ค‘
47+
perm(m+1) # result ์— m+1 ๊ฐœ ๋“ค์–ด๊ฐ€ ์žˆ์Œ
48+
check[i] = 0 # ์‚ฌ์šฉ ์™„๋ฃŒ
49+
50+
perm(0 )
51+
52+
"""
53+
# (์ถ”๊ฐ€)์š”๊ฑด ์ถœ๋ ฅ๋œ ์ˆœ์—ด ์ค‘์— ์ค‘๋ณต ์—†์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒฝ์šฐ
54+
55+
# start point
56+
def perm(m , start_point) : # m : result ์•ˆ์— ๋“ค์–ด๊ฐ€์žˆ๋Š” ์›์†Œ ๊ฐœ์ˆ˜ = ๋„ฃ์„ ์œ„์น˜
57+
if m == M : # result ๊ฐœ์ˆ˜ ๊ฐ™์œผ๋ฉด = ์žฌ๊ท€ ์ข…๋ฃŒ ์กฐ๊ฑด
58+
print(*result) # ์ถœ๋ ฅ
59+
# print(check)
60+
for s in range(start_point+1,N):
61+
check[s] = 0 # ์‚ฌ์šฉ ์™„๋ฃŒ
62+
# print(f"ํ˜„์žฌ ; {check}")
63+
else :
64+
for i in range(N) : # ๋” ๋ฝ‘์•„์•ผ ํ•˜๋ฉด , N ๊ฐœ ํ›„๋ณด๊ตฐ ์ค‘์— ํ™•์ธ
65+
if check[i] == 0 : #ํ˜„์žฌ ํ›„๋ณด์›์†Œ(i) ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•จ
66+
result[m] = elements[i] # result์— ๋“ฑ๋ก
67+
check[i] = 1 # ์‚ฌ์šฉ์ค‘
68+
# print(f"์—…๋ฐ์ดํŠธ ์ค‘ {check}")
69+
perm(m+1, start_point) # result ์— m+1 ๊ฐœ ๋“ค์–ด๊ฐ€ ์žˆ์Œ
70+
start_point += 1 # ๋‹ค์Œ ์นธ์œผ๋กœ ์ด๋™
71+
72+
perm(0 , 0)
73+
"""

0 commit comments

Comments
ย (0)