[๋ฐฑ์ค€] 15651 - N ๊ณผ M(3) with. Python

ยท

1 min read

๐Ÿ’ก๋ฌธ์ œ ๋ถ„์„ ์š”์•ฝ

-- ๋ฌธ์ œ --

์ž…๋ ฅ : N ,M (1 โ‰ค M โ‰ค N โ‰ค 7)

  • 1 ~ N ๊นŒ์ง€ ์ž์—ฐ์ˆ˜ ์ค‘์—์„œ M๊ฐœ๋ฅผ ๊ณ ๋ฅธ ์ˆ˜์—ด

  • ๊ฐ™์€ ์ˆ˜๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ๊ณจ๋ผ๋„ ๋จ

  • ์ค‘๋ณต๋˜๋Š” ์ˆ˜์—ด์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ถœ๋ ฅํ•˜๋ฉด ์•ˆ๋จ

  • ๊ฐ ์ˆ˜์—ด์€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅ

  • ์ˆ˜์—ด์€ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ถœ๋ ฅ

๐Ÿ’ก์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„

  1. input์„ ํ†ตํ•ด n,m์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.

  2. ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด์„œ n๊นŒ์ง€ ๋‹ค ๋„ฃ์–ด์ค€ ํ›„ dfs ํ•จ์ˆ˜๋ฅผ ์ ์šฉ์‹œ์ผœ์ค€๋‹ค.

  3. ์ ์šฉ์‹œํ‚จ ์ˆซ์ž๋“ค์„ ๋นผ์ค€๋‹ค.

๐Ÿ’ก์ฝ”๋“œ

n,m = map(int, input().split())
s=[]
def dfs():
    if len(s)==m:
        print(' '.join())
    for i in range(1, n+1):
        s.append(i)

๐Ÿ’ก์‹œ๊ฐ„๋ณต์žก๋„

O(n)

๐Ÿ’กํ‹€๋ฆฐ ์ด์œ 

  1. ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ๊ตฌํ˜„ํ•˜๋Š” ๋Šฅ๋ ฅ์ด ๋–จ์–ด์ง„๋‹ค.

๐Ÿ’กํ‹€๋ฆฐ ๋ถ€๋ถ„ ์ˆ˜์ • or ๋‹ค๋ฅธ ํ’€์ด

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

s = []

def dfs():
    if len(s)==m:
        print(' '.join(map(str,s)))
        return

    for i in range(1,n+1):
        s.append(i)
        dfs()
        s.pop()
dfs()

๐Ÿ’ก๋Š๋‚€์  or ๊ธฐ์–ต ํ•  ์ •๋ณด

  1. ์ฒ˜์Œ ์ฝ”ํ…Œ๋ฅผ ์ ‘ํ•˜๋‹ค๋ณด๋‹ˆ ์ ‘๊ทผํ•˜๋Š”๋ฐ ์–ด๋ ค์›€์„ ๋Š๋‚Œ. -> ๋ฌธ์ œ ๋งŽ์ด ์ ‘ํ•ด๋ณด๊ธฐ.

  2. ๊ฐœ๋…๋งŒ ๊ณต๋ถ€ํ•˜์ง€ ๋ง๊ณ  ๊ธฐ๋ณธ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ ๋งŽ์ด ์ ‘ํ•ด๋ณด๊ธฐ.

  3. map(str,s) : s ๋ฆฌ์ŠคํŠธ์˜ ๋ชจ๋“  ์š”์†Œ์— ๋Œ€ํ•ด str() ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜์—ฌ ๊ฐ ์š”์†Œ๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜

https://jiwon-coding.tistory.com/23 ๊ฐœ๋… ํ’€์ด ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ย