[BOJ][๐ก5][๋ฐฑ์ค#01759] ์ํธ ๋ง๋ค๊ธฐ
์์ฑ:    
์ ๋ฐ์ดํธ:
์นดํ ๊ณ ๋ฆฌ: BOJ Gold V
๋ฌธ์ ์ถ์ฒ
๋ฌธ์
๋ฐ๋ก ์ด์ ์ต๋ฐฑ์ค ์กฐ๊ต๊ฐ ๋ฐฉ ์ด์ ๋ฅผ ์ฃผ๋จธ๋์ ๋ฃ์ ์ฑ ๊น๋นกํ๊ณ ์์ธ๋ก ๊ฐ ๋ฒ๋ฆฌ๋ ํฉ๋นํ ์ํฉ์ ์ง๋ฉดํ ์กฐ๊ต๋ค์, 702ํธ์ ์๋ก์ด ๋ณด์ ์์คํ ์ ์ค์นํ๊ธฐ๋ก ํ์๋ค. ์ด ๋ณด์ ์์คํ ์ ์ด์ ๊ฐ ์๋ ์ํธ๋ก ๋์ํ๊ฒ ๋์ด ์๋ ์์คํ ์ด๋ค. ์ํธ๋ ์๋ก ๋ค๋ฅธ L๊ฐ์ ์ํ๋ฒณ ์๋ฌธ์๋ค๋ก ๊ตฌ์ฑ๋๋ฉฐ ์ต์ ํ ๊ฐ์ ๋ชจ์(a, e, i, o, u)๊ณผ ์ต์ ๋ ๊ฐ์ ์์์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค๊ณ ์๋ ค์ ธ ์๋ค. ๋ํ ์ ๋ ฌ๋ ๋ฌธ์์ด์ ์ ํธํ๋ ์กฐ๊ต๋ค์ ์ฑํฅ์ผ๋ก ๋ฏธ๋ฃจ์ด ๋ณด์ ์ํธ๋ฅผ ์ด๋ฃจ๋ ์ํ๋ฒณ์ด ์ํธ์์ ์ฆ๊ฐํ๋ ์์๋ก ๋ฐฐ์ด๋์์ ๊ฒ์ด๋ผ๊ณ ์ถ์ธก๋๋ค. ์ฆ, abc๋ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ํธ์ด์ง๋ง bac๋ ๊ทธ๋ ์ง ์๋ค. ์ ๋ณด์ ์์คํ ์์ ์กฐ๊ต๋ค์ด ์ํธ๋ก ์ฌ์ฉํ์ ๋ฒํ ๋ฌธ์์ ์ข ๋ฅ๋ C๊ฐ์ง๊ฐ ์๋ค๊ณ ํ๋ค. ์ด ์ํ๋ฒณ์ ์ ์ํ ๋ฏผ์, ์์ ํ์ ๋ ์กฐ๊ต๋ค์ ๋ฐฉ์ ์นจํฌํ๊ธฐ ์ํด ์ํธ๋ฅผ ์ถ์ธกํด ๋ณด๋ ค๊ณ ํ๋ค. C๊ฐ์ ๋ฌธ์๋ค์ด ๋ชจ๋ ์ฃผ์ด์ก์ ๋, ๊ฐ๋ฅ์ฑ ์๋ ์ํธ๋ค์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋ ์ ์ L, C๊ฐ ์ฃผ์ด์ง๋ค. (3 โค L โค Cย โค 15) ๋ค์ ์ค์๋ C๊ฐ์ ๋ฌธ์๋ค์ด ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ๋ฌธ์๋ค์ ์ํ๋ฒณ ์๋ฌธ์์ด๋ฉฐ, ์ค๋ณต๋๋ ๊ฒ์ ์๋ค.
์ถ๋ ฅ
๊ฐ ์ค์ ํ๋์ฉ, ์ฌ์ ์์ผ๋ก ๊ฐ๋ฅ์ฑ ์๋ ์ํธ๋ฅผ ๋ชจ๋ ์ถ๋ ฅํ๋ค.
์์
์ ๋ ฅ
4 6
a t c i s w
์ถ๋ ฅ
acis
acit
aciw
acst
acsw
actw
aist
aisw
aitw
astw
cist
cisw
citw
istw
My Sol
def func(i, s, L, C):
if i == L:
global stack
cnt = 0
for ch in stack:
if ch in 'aeiou':
cnt += 1
if (cnt>=1) and (L-cnt)>=2:
print(''.join(stack))
return
if s == C:
return
for k in range(s, C):
stack.append(chs[k])
func(i+1, k+1, L, C)
stack.pop()
L, C = map(int, input().split())
chs = sorted(list(input().split()))
stack = []
func(0, 0, L, C)
stack์ ์ฌ์ฉํ๋ ๋๋ฆ ๊ฐ๋จํ ๋ฌธ์ ์๋ค. ์ํ๋ฒณ๋ ์์๋๋ก ์ ๋ ฌ์ ํ ์๊ฐ ์์ผ๋ฏ๋ก ์ ๋ ฅ์ ๋ฐ์ ๋๋ถํฐ ์ ๋ ฌ์ ํด์ฃผ๊ณ , ์ด ๊ฐ๊ฐ์ ๋ํ์ฌ ์ฌ๊ท์ ์ฌ๊ท ๊ผฌ๋ฆฌ๋ฅผ ๋ฌผ๋ฉฐ stack์ ๋ฃ๊ณ ํธ์ถ ํ ๋นผ์ค๋ค. s๋ถํฐ C์ ๋ชจ๋ k ๊ฐ๊ฐ์ ๋ํ์ฌ ๋ฃ์ด๋ณด๊ณ ๋นผ๋ณด๋ฉฐ stack์ ์ฑ์ ๋ค ๋บ๋ค ํ๋ ๊ฒ์ด๋ค.
๋ค๋ง ๋ฌธ์ ์ ์กฐ๊ฑด์ ๊ฐ๊ณผํ๊ณ ๋์ด๊ฐ ์ ์๋๋ฐ ๋ชจ์์ด 1๊ฐ ์ด์, ์์์ด 2๊ฐ ์ด์์ด์ด์ผ ํ๋ฏ๋ก, stack์์ ๋ชจ์์ ์ธ์ด cnt์ ์ ์ฅํ๊ณ , ์ด cnt๊ฐ 1์ด์์ด๊ณ , L-cnt ์ฆ, ๋ชจ์์ด ์๋ ์์์ ์๊ฐ 2๊ฐ ์ด์์ธ ๊ฒฝ์ฐ์๋ง stack์ ๋ถ์ฌ ์ถ๋ ฅํ๋๋ก ํ์๋ค.
๊ฒฐ๊ณผ
๋ง์์ต๋๋ค!!
์กฐ๊ฑด์ ์ ๋๋ก ๋ณด์ง ๋ชปํด์ 1๋ฒ์ ํ๋ฆฌ๊ณ ๋๋ฒ๊น ์ฉ์ผ๋ก ๋ฃ์ print๋ฌธ์ ์ ๋นผ์ 1๋ฒ ๋ ํ๋ ธ๋ค. ์ด๋ฐ ๊ฑฐ ์ ๋ด์ผ ํ๋ค. ์์ฝ๋คใ ใ
๋๊ธ๋จ๊ธฐ๊ธฐ