728x90
https://www.acmicpc.net/problem/1759
💡 문제 풀이
백트래킹 문제이다.
주어진 길이까지 백트래킹을 실시하고 주어진 조건만 맞추면 된다.
백트래킹의 기본이라고 볼 수 있다.
✔️ 느낀 점
브루트포스인 줄 알고 풀었는데 백트래킹 문제였다.
💻 코드
import sys
l, c = map(int, sys.stdin.readline().split())
words = sorted(list(map(str, sys.stdin.readline().split())))
answer = []
def back_tracking(cnt, idx):
if cnt == l:
vo, co = 0, 0
for i in range(l):
if answer[i] in ['a', 'e', 'i', 'o', 'u']:
vo += 1
else:
co += 1
if vo >= 1 and co >= 2:
print("".join(answer))
return
for i in range(idx, c):
answer.append(words[i])
back_tracking(cnt + 1, i + 1)
answer.pop()
back_tracking(0, 0)
'문제 풀이 > 백준(BOJ)' 카테고리의 다른 글
[Python] 백준 2623번 : 음악프로그램 (0) | 2022.07.31 |
---|---|
[Python] 백준 1107번 : 리모컨 (0) | 2022.07.30 |
[Python] 백준 1577번 : 도로의 개수 (0) | 2022.07.26 |
[Python] 백준 2110번 : 공유기 설치 (0) | 2022.07.26 |
[Python] 백준 1300번 : K번째 수 (0) | 2022.07.26 |
댓글