ABOUT ME

-

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

    ๐Ÿ“Œ BOJ 15654 N๊ณผ M (5)

    ๐Ÿ’ก ์กฐ๊ฑด

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

    2. N๊ฐœ์˜ ์ž์—ฐ์ˆ˜ ์ค‘์—์„œ M๊ฐœ๋ฅผ ๊ณ ๋ฅธ ์ˆ˜์—ด

    3. ์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N๊ณผ M์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค M โ‰ค N โ‰ค 8)
      ๋‘˜์งธ ์ค„์— N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ์ˆ˜๋Š” 10,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.

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

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

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

    ์˜ˆ์ œ 1

    3 1
    4 5 2

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

    2
    4
    5

    ์˜ˆ์ œ 2

    4 2
    9 8 7 1

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

    1 7
    1 8
    1 9
    7 1
    7 8
    7 9
    8 1
    8 7
    8 9
    9 1
    9 7
    9 8

    ์˜ˆ์ œ 3

    4 4
    1231 1232 1233 1234

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

    1231 1232 1233 1234
    1231 1232 1234 1233
    1231 1233 1232 1234
    1231 1233 1234 1232
    1231 1234 1232 1233
    1231 1234 1233 1232
    1232 1231 1233 1234
    1232 1231 1234 1233
    1232 1233 1231 1234
    1232 1233 1234 1231
    1232 1234 1231 1233
    1232 1234 1233 1231
    1233 1231 1232 1234
    1233 1231 1234 1232
    1233 1232 1231 1234
    1233 1232 1234 1231
    1233 1234 1231 1232
    1233 1234 1232 1231
    1234 1231 1232 1233
    1234 1231 1233 1232
    1234 1232 1231 1233
    1234 1232 1233 1231
    1234 1233 1231 1232
    1234 1233 1232 1231

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

    1. ์ˆซ์ž๋ฅผ ์ค‘๋ณต์œผ๋กœ ๊ณ ๋ฅด๋ฉด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— "if i not in res" ๊ตฌ๋ฌธ์„ ํ†ตํ•ด์„œ ์ค‘๋ณต์ˆซ์ž ์„ ํƒ์„ ํ”ผํ–ˆ๋‹ค.

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

    from sys import stdin, setrecursionlimit
    
    setrecursionlimit(10 ** 7)
    n, m = map(int, stdin.readline().split())
    arr = list(map(int, stdin.readline().split()))
    arr.sort()
    
    
    def f(res, cnt):
        if cnt == m:
            print(*res)
            return
    
        for i in arr:
            if i not in res:
                f(res + [i], cnt + 1)
    
    
    f([], 0)
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.