Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 백준 19238
- 백준
- 백준 15685
- 백준 16236
- 웹어플리케이션 서버
- 파이썬
- 백준 파이썬
- MSA
- Kotlin
- spring cloud
- JVM
- Spring
- Spring Boot
- 백준 16719
- re.split
- 프로래머스
- 프로그래머스
- Coroutine
- JPA
- spring oauth
- 백준 17779
- spring security
- MySQL
- springboot
- 백준 17626
- sql 기술면접
- 백준 16235
- java
- java 기술면접
- with recursive
Archives
- Today
- Total
시작이 반
[백준] 1759번(python 파이썬) 본문
SMALL
조합관련 문제이다. itertools의 combinations을 사용해도 되지만 백트래킹으로 풀었다.
사실 간단한 문제인데 문제를 제대로 읽지 않았다..
처음에 대충 읽고 푼게 모음만 하나 이상이면 된다고 생각하여 풀었는데 오답이 나와서 다시 문제를 보니 자음도 최소 2개 이상 나와야 한다고 적혀있었다.
첫번째 잘못 이해..
그리고 왠지 모르겠지만 모음이 연속으로 나오면 안된다고 적혀있지도 않는데 연속으로 나오지 않도록 풀었다...
두번째 잘못 이해..
문제를 꼼꼼히 보자..
l, c = map(int, input().split())
cipher = list(input().split())
visited = [False] * c
vowels = ['a', 'e', 'i', 'o', 'u']
cipher.sort()
string =""
def BackTrack(depth, start):
global string
if depth == l:
Vaildation(string)
return
for i in range(start, c):
if visited[i]:
continue
visited[i] = True
string += cipher[i]
BackTrack(depth+1, i)
string = string[:-1]
visited[i] = False
def Vaildation(string):
vowel_count = 0
consonant_count = 0
for i in range(len(string)):
if string[i] in vowels:
vowel_count += 1
else:
consonant_count += 1
if i == len(string) - 1:
if vowel_count >= 1 and consonant_count >= 2 :
print(string)
BackTrack(0, 0)
LIST
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 9461번(python 파이썬) (0) | 2021.02.06 |
---|---|
[백준] 20208번(python 파이썬) (0) | 2021.02.04 |
[백준] 16968번(python 파이썬) (0) | 2021.02.04 |
[백준] 6603번(python 파이썬) (0) | 2021.02.03 |
[백준] 14889번(python 파이썬) (1) | 2021.02.03 |