๋ฌธ์
๋ฐฑ์ค ์ํธ ๋ง๋ค๊ธฐ https://www.acmicpc.net/problem/1759
์ฝ๋
l, c = map(int, input().split()) # ์ํธ๊ธธ์ด, ํ๋ณด ๋ฌธ์ ๊ฐ์
letters = sorted(list(map(str, input().split()))) # ํ๋ณด ๋ฌธ์
arr = []
# ๋ชจ์ ์ธ๋ ํจ์
def count_vowel(lst):
return lst.count('a') + lst.count('e') + lst.count('i') + lst.count('o') + lst.count('u')
def recur(idx):
if len(arr) == l:
# ๋ชจ์ ํ๊ฐ์ด์, ์์ ๋๊ฐ ์ด์์ด๋ฉด
if count_vowel(arr) >= 1 and l - count_vowel(arr) >= 2:
print("".join(arr))
return
for i in range(idx, c):
arr.append(letters[i])
recur(i + 1)
arr.pop()
recur(0)
ํ์ด
l, c = map(int, input().split()) # ์ํธ๊ธธ์ด, ํ๋ณด ๋ฌธ์ ๊ฐ์
letters = sorted(list(map(str, input().split()))) # ํ๋ณด ๋ฌธ์
arr = []
์ ๋ ฅ ์กฐ๊ฑด์ ๋ง์ถฐ์ ์ ๋ ฅ l, c, letters๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค.
์์ฑ๋ ์ํธ๋ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์, letters๋ฅผ ๋ฏธ๋ฆฌ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ค.
arr์ ๋ฐฑํธ๋ํน์ ์ ๋ต์ ๋ด์ ๋ฐฐ์ด์ด๋ค.
# ๋ชจ์ ์ธ๋ ํจ์
def count_vowel(lst):
return lst.count('a') + lst.count('e') + lst.count('i') + lst.count('o') + lst.count('u')
๋ชจ์์ ์ธ๋ ํจ์๋ฅผ ์ ์ธํ๋ค.
๋งค๊ฐ๋ณ์๋ก ๋ฐ๋ ๋ฐฐ์ด์ a, e, i ,o, u๊ฐ ์ด ๋ช๊ฐ ์๋์ง ๋ฐํํ๋ค.
def recur(idx):
if len(arr) == l:
# ๋ชจ์ ํ๊ฐ์ด์, ์์ ๋๊ฐ ์ด์์ด๋ฉด
if count_vowel(arr) >= 1 and l - count_vowel(arr) >= 2:
print("".join(arr))
return
for i in range(idx, c):
arr.append(letters[i])
recur(i + 1)
arr.pop()
arr์ ํ๋ณด๊ธ์๋ค์ ํ๋์ฉ ์ถ๊ฐํ๋ค.
์กฐ๊ฑด์ ๋ง์ถฐ์ ๊ธ์๋ฅผ ํ๋์ฉ ์ถ๊ฐํ๋ค๊ฐ ์ข ๋ฃ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด arr์ ์๋ ์ซ์๋ค์ ์ถ๋ ฅํ๊ณ return ํ๋ค.
์ข ๋ฃ์กฐ๊ฑด์
arr์ ๊ธธ์ด๊ฐ ์ํธ์ ๊ธธ์ด์ ๊ฐ๊ณ ,
arr์์ ๋ชจ์์ด ํ๊ฐ ์ด์, ์์์ด ๋๊ฐ ์ด์ ์ด์ด์ผํ๋ค.
์๋กญ๊ฒ ๋ฐฐ์ด์ /๋๋์
- ๊ณจ๋ ๋ฌธ์ ์ธ๊ฒ์ ์ฝ๊ฐ ๊ฒ๋จน์์ง๋ง, ๋ฐฑํธ๋ํน ๊ฐ๋ ์ ํํํ ๋ค์ ธ๋์๋ค๋ฉด ์ฝ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์ธ๊ฒ ๊ฐ๋ค.
๋ ๋์ ์๊ฒฌ์ด๋ ๊ถ๊ธํ์ ๊ฒ ์๋ค๋ฉด ํธํ๊ฒ ๋๊ธ ๋ฌ์์ฃผ์ธ์ :)
'์ฝ๋ฉํ ์คํธ๐ก' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] ์ ์ฐพ๊ธฐ (0) | 2024.06.19 |
---|---|
[๋ฐฑ์ค] ๊ทธ๋ฆผ (0) | 2024.06.18 |
[๋ฐฑ์ค] ๋ฆฌ๋ชจ์ปจ (0) | 2024.06.16 |
[๋ฐฑ์ค] ๊ฐ์ํ๋ ์ (0) | 2024.06.15 |
[๋ฐฑ์ค] ์ซ์์นด๋2 (0) | 2024.06.14 |