ABOUT ME

-

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

    ๐Ÿ“Œ BOJ 15657 N๊ณผ M (8)

    ๐Ÿ’ก ์กฐ๊ฑด

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

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

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

    4. ๋‘˜์งธ ์ค„์— N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ์ˆ˜๋Š” 10,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.

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

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

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

    ์˜ˆ์ œ 1

    3 1
    4 5 2

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

    2
    4
    5

    ์˜ˆ์ œ 2

    4 2
    9 8 7 1

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

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

    ์˜ˆ์ œ 3

    4 4
    1231 1232 1233 1234

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

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

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

    1. ์ˆ˜์—ด์€ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์•ผํ•œ๋‹ค. ๊ฐ™์€ ์ˆซ์ž๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๊ณจ๋ผ๋„ ๋œ๋‹ค.

    2. ๋น„๋‚ด๋ฆผ์ฐจ์ˆœ(์˜ค๋ฆ„์ฐจ์ˆœ)์œผ๋กœ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ˆ˜์—ด(res) ์˜ ๋งจ ๋งˆ์ง€๋ง‰๊ณผ ํ˜„์žฌ ๋„ฃ์„ ์ˆ˜๋ฅผ ๋น„๊ตํ•˜๋Š” ๋กœ์ง์ด ํ•„์š”ํ•˜๋‹ค.

    3. ๋งŒ์•ฝ ์ˆ˜์—ด(res)๊ฐ€ ๋น„์–ด์žˆ์œผ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚˜๊ธฐ๋•Œ๋ฌธ์—, ์ˆ˜์—ด์ด ๋น„์–ด์žˆ์„ ๋•Œ๋„ ๊ณ ๋ คํ•ด์•ผํ•œ๋‹ค.

    4. ๋งŒ์•ฝ res๊ฐ€ ์ถœ๋ ฅ๋œ ์ ์ด ์—†๋‹ค๋ฉด, res๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ์ถœ๋ ฅ๋œ res์™€ res์˜ ์—ญ์ˆœ ๋ฐฐ์—ด์„ visited ์— ๋„ฃ๋Š”๋‹ค.

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

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

    ๋Œ“๊ธ€

Designed by Tistory.