ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 15652 N๊ณผ M (4) with Python
    PS 2023. 4. 18. 16:15
    728x90
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ“Œ BOJ 15652 N๊ณผ M (4)

    ๐Ÿ’ก ์กฐ๊ฑด

    1. ์ž์—ฐ์ˆ˜ N๊ณผ M์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์•„๋ž˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ธธ์ด๊ฐ€ M์ธ ์ˆ˜์—ด์„ ๋ชจ๋‘ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

    2. 1๋ถ€ํ„ฐ N๊นŒ์ง€ ์ž์—ฐ์ˆ˜ ์ค‘์—์„œ M๊ฐœ๋ฅผ ๊ณ ๋ฅธ ์ˆ˜์—ด
      ๊ฐ™์€ ์ˆ˜๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๊ณจ๋ผ๋„ ๋œ๋‹ค.
      ๊ณ ๋ฅธ ์ˆ˜์—ด์€ ๋น„๋‚ด๋ฆผ์ฐจ์ˆœ์ด์–ด์•ผ ํ•œ๋‹ค.
      ๊ธธ์ด๊ฐ€ K์ธ ์ˆ˜์—ด A๊ฐ€ A1 โ‰ค A2 โ‰ค ... โ‰ค AK-1 โ‰ค AK๋ฅผ ๋งŒ์กฑํ•˜๋ฉด, ๋น„๋‚ด๋ฆผ์ฐจ์ˆœ์ด๋ผ๊ณ  ํ•œ๋‹ค.

    3. ์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N๊ณผ M์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค M โ‰ค N โ‰ค 8)

    4. ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ˆ˜์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค.
      ์ค‘๋ณต๋˜๋Š” ์ˆ˜์—ด์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ถœ๋ ฅํ•˜๋ฉด ์•ˆ๋˜๋ฉฐ, ๊ฐ ์ˆ˜์—ด์€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.
      ์ˆ˜์—ด์€ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

    5. ๋ฐฑํŠธ๋ž˜ํ‚น ์œ ํ˜•์˜ ๋ฌธ์ œ

    ๐Ÿ”– ์˜ˆ์ œ ๋ฐ ์‹คํ–‰๊ฒฐ๊ณผ

    ์˜ˆ์ œ 1

    3 1

    ์‹คํ–‰๊ฒฐ๊ณผ 1

    1
    2
    3

    ์˜ˆ์ œ 2

    4 2

    ์‹คํ–‰๊ฒฐ๊ณผ 2

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

    ์˜ˆ์ œ 3

    3 3

    ์‹คํ–‰๊ฒฐ๊ณผ 3

    1 1 1
    1 1 2
    1 1 3
    1 2 2
    1 2 3
    1 3 3
    2 2 2
    2 2 3
    2 3 3
    3 3 3

    โŒจ๏ธ ๋ฌธ์ œ ํ’€์ด

    1. N๊ณผ M (3)์˜ ๊ฒฐ๊ณผ์—์„œ ์ˆ˜์—ด์ด ์˜ค๋ฆ„์ฐจ์ˆœ์ธ ๊ฒƒ๋งŒ ์ถœ๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

    2. ์ˆ˜์—ด์„ ๋งŒ๋“ค ๋•Œ, res ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ๊ฐ€ ํ˜„์žฌ ๋„ฃ์œผ๋ ค๋Š” ์ˆซ์ž๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์„ ๋•Œ ๋„ฃ์–ด์ฃผ๋Š” ์ฝ”๋“œ๋ฅผ ๋„ฃ๋Š”๋‹ค.

    ๐Ÿ–ฅ ์†Œ์Šค ์ฝ”๋“œ

    from sys import stdin, setrecursionlimit
    
    setrecursionlimit(10 ** 7)
    n, m = map(int, stdin.readline().split())
    
    
    def f(arr, cnt):
        if cnt == m:
            print(*arr)
            return
    
        for i in range(1, n + 1):
            if m > 1 and len(arr) > 0:
                if arr[-1] <= i:
                    f(arr + [i], cnt + 1)
            else:
                f(arr + [i], cnt + 1)
    
    
    f([], 0)
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.