ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 1759 ์•”ํ˜ธ ๋งŒ๋“ค๊ธฐ with Python
    PS 2022. 2. 13. 23:18
    728x90
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ“Œ BOJ 1759 ์•”ํ˜ธ ๋งŒ๋“ค๊ธฐ

    ๐Ÿ’ก ์กฐ๊ฑด

    1. ์•”ํ˜ธ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ L๊ฐœ์˜ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋“ค๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ์ตœ์†Œ ํ•œ ๊ฐœ์˜ ๋ชจ์Œ(a, e, i, o, u)๊ณผ
      ์ตœ์†Œ ๋‘ ๊ฐœ์˜ ์ž์Œ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค๊ณ  ์•Œ๋ ค์ ธ ์žˆ๋‹ค.

    2. ์•”ํ˜ธ๋ฅผ ์ด๋ฃจ๋Š” ์•ŒํŒŒ๋ฒณ์ด ์•”ํ˜ธ์—์„œ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ๋ฐฐ์—ด๋˜์—ˆ์„ ๊ฒƒ.
      ์ฆ‰, abc๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์•”ํ˜ธ์ด์ง€๋งŒ bac๋Š” ๊ทธ๋ ‡์ง€ ์•Š๋‹ค.

    3. C๊ฐœ์˜ ๋ฌธ์ž๋“ค์ด ๋ชจ๋‘ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€๋Šฅ์„ฑ ์žˆ๋Š” ์•”ํ˜ธ๋“ค์„ ๋ชจ๋‘ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑ.
      ๊ฐ ์ค„์— ํ•˜๋‚˜์”ฉ, ์‚ฌ์ „์‹์œผ๋กœ ๊ฐ€๋Šฅ์„ฑ ์žˆ๋Š” ์•”ํ˜ธ๋ฅผ ๋ชจ๋‘ ์ถœ๋ ฅ

    4. ๋‘ ์ •์ˆ˜ L, C๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (3 โ‰ค L โ‰ค C โ‰ค 15)

    5. ๋ฌธ์ž๋“ค์€ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์ด๋ฉฐ, ์ค‘๋ณต๋˜๋Š” ๊ฒƒ์€ ์—†๋‹ค.

    6. ๋ธŒ๋ฃจํŠธํฌ์Šค, ๋ฐฑํŠธ๋ž˜ํ‚น ์œ ํ˜•์˜ ๋ฌธ์ œ

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

    from sys import stdin
    from itertools import combinations
    
    mo_um = []
    
    l, c = map(int, stdin.readline().split())
    alpha = list(stdin.readline().rstrip().split())
    
    for i in alpha:
        if i in ("a", "e", "i", "o", "u"):
            mo_um.append(i)
    
    res = set()
    for i in list(set(combinations(alpha, l))):
        length = l
        for k in mo_um:
            if k in i:
                length -= 1
        if length < 2 or length == l:
            continue
        else:
            res.add(tuple(sorted(list(i))))
    
    for i in list(sorted(res)):
        print(''.join(i))

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

    ์˜ˆ์ œ

    4 6
    a t c i s w

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

    acis
    acit
    aciw
    acst
    acsw
    actw
    aist
    aisw
    aitw
    astw
    cist
    cisw
    citw
    istw

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

    1. L, C ๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ , C ๊ฐœ์˜ ์•”ํ˜ธ๋กœ ์‚ฌ์šฉ๋˜์—ˆ์„ ๋ฒ•ํ•œ ๋ฌธ์ž๋ฅผ ๋ฆฌ์ŠคํŠธ๋กœ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.

    2. C ๊ฐœ์˜ ์•”ํ˜ธ๋กœ ์‚ฌ์šฉ๋˜์—ˆ์„ ๋ฒ•ํ•œ ๋ฌธ์ž๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ, ๋ชจ์Œ (a, e, i, o, u) ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์—ฌ
      mo_um ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•œ๋‹ค.

    3. ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  res ๋ณ€์ˆ˜๋ฅผ ์ค‘๋ณต์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด set() ์ž๋ฃŒํ˜•์œผ๋กœ ์ƒ์„ฑํ•œ๋‹ค.

    4. combinations ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด l์˜ ๊ธธ์ด๋กœ ๋œ ์กฐํ•ฉ์„ ๋งŒ๋“ ๋‹ค. set() ์œผ๋กœ ๊ฐ์‹ธ์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด์ค€๋‹ค.

    5. length ๋ณ€์ˆ˜์— l์„ ์ €์žฅํ•ด์ฃผ๊ณ , ๋งŒ๋“ค์–ด์ง„ ์กฐํ•ฉ์„ ์ˆœํšŒํ•œ๋‹ค.(i)
      mo_um์„ ์ˆœํšŒํ•˜๋ฉด์„œ i์— ํ•ด๋‹น ๋ชจ์Œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์žˆ๋‹ค๋ฉด length - 1 ํ•ด์ค€๋‹ค.

    6. ์•”ํ˜ธ๋Š” ์ตœ์†Œ ํ•œ ๊ฐœ์˜ ๋ชจ์Œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ž์Œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.
      length ๊ฐ€ 2๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ l๊ณผ ๊ฐ™์„ ๊ฒฝ์šฐ continue ํ•ด์ฃผ๊ณ , ์•„๋‹ˆ๋ผ๋ฉด res์— ์ €์žฅํ•œ๋‹ค.

    7. res ๋ฅผ ํ•œ์ค„์”ฉ ์ถœ๋ ฅํ•œ๋‹ค.

    ๐Ÿ’พ ๋Š๋‚€์ 

    1. ์•ฝ 7ํšŒ ์‹œ๋„ ๋์— ์ •๋‹ต์„ ๋งž์ท„์Šต๋‹ˆ๋‹ค.
      ์กฐ๊ฑด๋ฌธ์ด ์ž˜๋ชป๋˜์–ด ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค.
    2. length ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•  ์ƒ๊ฐ์„ ํ•˜์ง€ ๋ชปํ•ด์„œ ํ‹€๋ฆฐ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜์Šต๋‹ˆ๋‹ค.
    3. ๋‹ค๋ฅธ ๊ณจ๋“œ ๋‚œ์ด๋„๋ณด๋‹ค๋Š” ์กฐ๊ธˆ ์‰ฌ์šด ๋‚œ์ด๋„์˜ ๋ฌธ์ œ์˜€๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    4. ๋ธŒ๋ฃจํŠธํฌ์Šค, ๋ฐฑํŠธ๋ž˜ํ‚น ๋ฌธ์ œ๋ฅผ ๋” ๋งŽ์ด ํ’€์–ด๋ณด๊ณ  ๊ฒฝํ—˜ํ•ด๋ด์•ผํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.