deo2kim
맞왜틀
deo2kim
전체 방문자
오늘
어제
  • 분류 전체보기
    • CS
      • Algorithm
      • Data Structure
      • Network
      • DB
      • OS
    • Algorithm Problem
      • Python
      • JavaScript
    • Programming language
      • Python
      • JavaScript
    • Tool
      • Jquery
      • React
    • 개발
    • Infra

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
deo2kim

맞왜틀

Algorithm Problem/Python

[python] 백준 - 1759. 암호 만들기

2020. 5. 27. 00:06
반응형

문제 해결

1. 암호는 알파벳 순서로 짜야하므로 오름차순 정렬

2. 모음의 포함 유무를 확인하기 위해 aeiou를 생성

3. 자음이 1개이상, 모음이 2개이상일 때 result에 추가

소스 코드

def bt(idx, word):
    # 암호의 길이가 L이 됐을 때
    if len(word) == L:
        vowel_cnt = 0
        consonant_cnt = 0
        for w in word:
            if w in vowel:
                vowel_cnt += 1
            else:
                consonant_cnt += 1

            # 자음이 1개 이상, 모음이 2개 이상일 때만 result에 추가해 준다.
            if vowel_cnt >= 1 and consonant_cnt >= 2:
                result.add(word)
                break

        return

    # 함수에 들어갈 때 이전 선택 다음부터 선택: i+1
    for i in range(idx, C):
        bt(i+1, word+words[i])


L, C = map(int, input().split())
words = input().split()

# 문제에서 암호는 알파벳이 증가하는 순서 대로 짜야 하므로
words.sort()

# 모음의 포함 유무 확인용
vowel = 'aeiou'

# 중복된 결과 선택을 피하기 위해 set 사용
result = set()
bt(0, '')

# set은 순서가없으므로 list로 바꿔준 후 정렬
result = list(result)
result.sort()
for row in result:
    print(row)

 

출처 : BACKJOON ONLINE JUDGE

문제 : https://www.acmicpc.net/problem/1759

 

1759번: 암호 만들기

첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다.

www.acmicpc.net

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Algorithm Problem > Python' 카테고리의 다른 글

[python] 백준 - 15684. 사다리 조작  (0) 2020.05.28
[python] 백준 - 1753. 최단경로  (0) 2020.05.27
[python] 백준 - 7568. 덩치  (0) 2020.05.25
[python] 백준 - 1922. 네트워크 연결  (3) 2020.05.22
[python] 백준 - 2644. 촌수계산  (0) 2020.05.21
    'Algorithm Problem/Python' 카테고리의 다른 글
    • [python] 백준 - 15684. 사다리 조작
    • [python] 백준 - 1753. 최단경로
    • [python] 백준 - 7568. 덩치
    • [python] 백준 - 1922. 네트워크 연결
    deo2kim
    deo2kim
    코딩 기록하기

    티스토리툴바