-
[๋ฐฑ์ค] 1759 ์ํธ ๋ง๋ค๊ธฐ with PythonPS 2022. 2. 13. 23:18728x90๋ฐ์ํ
๐ BOJ 1759 ์ํธ ๋ง๋ค๊ธฐ
๐ก ์กฐ๊ฑด
์ํธ๋ ์๋ก ๋ค๋ฅธ L๊ฐ์ ์ํ๋ฒณ ์๋ฌธ์๋ค๋ก ๊ตฌ์ฑ๋๋ฉฐ ์ต์ ํ ๊ฐ์ ๋ชจ์(a, e, i, o, u)๊ณผ
์ต์ ๋ ๊ฐ์ ์์์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค๊ณ ์๋ ค์ ธ ์๋ค.์ํธ๋ฅผ ์ด๋ฃจ๋ ์ํ๋ฒณ์ด ์ํธ์์ ์ฆ๊ฐํ๋ ์์๋ก ๋ฐฐ์ด๋์์ ๊ฒ.
์ฆ, abc๋ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ํธ์ด์ง๋ง bac๋ ๊ทธ๋ ์ง ์๋ค.C๊ฐ์ ๋ฌธ์๋ค์ด ๋ชจ๋ ์ฃผ์ด์ก์ ๋, ๊ฐ๋ฅ์ฑ ์๋ ์ํธ๋ค์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑ.
๊ฐ ์ค์ ํ๋์ฉ, ์ฌ์ ์์ผ๋ก ๊ฐ๋ฅ์ฑ ์๋ ์ํธ๋ฅผ ๋ชจ๋ ์ถ๋ ฅ๋ ์ ์ L, C๊ฐ ์ฃผ์ด์ง๋ค. (3 โค L โค C โค 15)
๋ฌธ์๋ค์ ์ํ๋ฒณ ์๋ฌธ์์ด๋ฉฐ, ์ค๋ณต๋๋ ๊ฒ์ ์๋ค.
๋ธ๋ฃจํธํฌ์ค, ๋ฐฑํธ๋ํน ์ ํ์ ๋ฌธ์
๐ฅ ์์ค ์ฝ๋
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
โจ๏ธ ๋ฌธ์ ํ์ด
L, C ๋ฅผ ์ ๋ ฅ๋ฐ๊ณ , C ๊ฐ์ ์ํธ๋ก ์ฌ์ฉ๋์์ ๋ฒํ ๋ฌธ์๋ฅผ ๋ฆฌ์คํธ๋ก ์ ๋ ฅ๋ฐ๋๋ค.
C ๊ฐ์ ์ํธ๋ก ์ฌ์ฉ๋์์ ๋ฒํ ๋ฌธ์๋ฅผ ์ํํ๋ฉด์, ๋ชจ์ (a, e, i, o, u) ๊ฐ ์๋์ง ํ์ธํ์ฌ
mo_um ๋ฆฌ์คํธ์ ์ ์ฅํ๋ค.๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ res ๋ณ์๋ฅผ ์ค๋ณต์ ๋ฐฉ์งํ๊ธฐ ์ํด set() ์๋ฃํ์ผ๋ก ์์ฑํ๋ค.
combinations ํจ์๋ฅผ ์ฌ์ฉํด l์ ๊ธธ์ด๋ก ๋ ์กฐํฉ์ ๋ง๋ ๋ค. set() ์ผ๋ก ๊ฐ์ธ์ ์ค๋ณต์ ์ ๊ฑฐํด์ค๋ค.
length ๋ณ์์ l์ ์ ์ฅํด์ฃผ๊ณ , ๋ง๋ค์ด์ง ์กฐํฉ์ ์ํํ๋ค.(i)
mo_um์ ์ํํ๋ฉด์ i์ ํด๋น ๋ชจ์์ด ์๋์ง ํ์ธํ๊ณ , ์๋ค๋ฉด length - 1 ํด์ค๋ค.์ํธ๋ ์ต์ ํ ๊ฐ์ ๋ชจ์์ ๊ฐ์ง๊ณ ์๊ณ , ๋ ๊ฐ ์ด์์ ์์์ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.
length ๊ฐ 2๋ณด๋ค ์๊ฑฐ๋ l๊ณผ ๊ฐ์ ๊ฒฝ์ฐ continue ํด์ฃผ๊ณ , ์๋๋ผ๋ฉด res์ ์ ์ฅํ๋ค.res ๋ฅผ ํ์ค์ฉ ์ถ๋ ฅํ๋ค.
๐พ ๋๋์
- ์ฝ 7ํ ์๋ ๋์ ์ ๋ต์ ๋ง์ท์ต๋๋ค.
์กฐ๊ฑด๋ฌธ์ด ์๋ชป๋์ด ํ๋ ธ์ต๋๋ค. - length ๋ณ์๋ฅผ ๋ง๋ค์ด ์กฐ๊ฑด์ ์ฌ์ฉํ ์๊ฐ์ ํ์ง ๋ชปํด์ ํ๋ฆฐ ๊ฒฝ์ฐ๊ฐ ๋ง์์ต๋๋ค.
- ๋ค๋ฅธ ๊ณจ๋ ๋์ด๋๋ณด๋ค๋ ์กฐ๊ธ ์ฌ์ด ๋์ด๋์ ๋ฌธ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
- ๋ธ๋ฃจํธํฌ์ค, ๋ฐฑํธ๋ํน ๋ฌธ์ ๋ฅผ ๋ ๋ง์ด ํ์ด๋ณด๊ณ ๊ฒฝํํด๋ด์ผํ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฐ์ํ'PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 2477 ์ฐธ์ธ๋ฐญ with Python (0) 2022.02.14 [๋ฐฑ์ค] 2422 ํ์ค์ ์ด ์ดํ๋ฆฌ์์ ๊ฐ์ ์์ด์คํฌ๋ฆผ์ ์ฌ๋จน๋๋ฐ with Python (0) 2022.02.13 [๋ฐฑ์ค] 1236 ์ฑ ์งํค๊ธฐ with Python (0) 2022.02.10 [๋ฐฑ์ค] 14248 ์ ํ ์ ํ with Python (0) 2022.02.10 [๋ฐฑ์ค] 11655 ROT13 with Python (0) 2022.02.10