광규니
광규니네
광규니
전체 방문자
오늘
어제
  • 분류 전체보기 (154)
    • 알고리즘 (100)
      • 알고리즘 개념 (2)
      • 문제 풀이 (96)
    • 주절주절 (19)
      • 자격증, 활동 후기 (4)
      • 전시회 후기 (3)
      • 이모저모 (2)
      • 회고 (3)
      • 뜨럼 (7)
    • 운영체제 (9)
    • 개발 지식 (9)
      • Apple Watch (4)
      • MySQL (2)
      • Eclipse (1)
      • XCode (1)
    • 네트워크 공부 (1)
    • 데이터베이스 공부 (5)
    • Java 공부 (7)
    • TMP (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 드린이
  • 자바
  • 애플워치 앱
  • BFS
  • 프로그래머스
  • 알고리즘
  • 백준
  • 파이썬
  • DP
  • 개념
  • 애플워치 앱 만들기
  • 티스토리챌린지
  • 오블완
  • 다이나믹 프로그래밍
  • 합주
  • 컴퓨터 사이언스
  • 운영체제
  • 구현
  • OS
  • BOJ

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
광규니

광규니네

알고리즘/문제 풀이

[Python/파이썬 백준 1759] 암호 만들기

2021. 4. 3. 18:58
반응형

www.acmicpc.net/problem/1759

 

1759번: 암호 만들기

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

www.acmicpc.net

풀이

문제 조건이 자음 최소 2개, 모음 최소 1개가 꼭 있어야하구

사전식으로 정렬 출력입니다.

시간 제한 2초라 널널했습니다.

 

일단 자음 모음 리스트로 나눠주고

그 다음 조합으로 했습니다.

주석 참고하세용!

# 암호 만들기
# 리스트 -> 문자열 만드는게 쫌 빡셌음
import sys
from itertools import combinations

input=sys.stdin.readline

l,c=map(int,input().split())

lst_str=list(map(str,input().split()))

mo_lst=['a','e','i','o','u']

small_lst=[]
big_lst=[]
# 자, 모 판단

for i in lst_str:
    flag=False
    for j in mo_lst:
        if i==j:
            flag=True
    if flag==True:
        small_lst.append(i)
    else:
        big_lst.append(i)

total=[]
# 2부터 시작해서 자음 2개 모음 1개 조건 만족
for i in range(2,l):
    big_tmp=list(combinations(big_lst,i))
    small_tmp=list(combinations(small_lst,l-i))
    # tmp 리스트에 자음 모음 합치구 문자열로 바꿔주기
    for j in big_tmp:
        a=list(j)
        for k in small_tmp:
            b=list(k)
            tmp=a+b
            tmp.sort()
            s=','.join(tmp)
            s.replace(',','')
            total.append(s)

total.sort()
for i in total:
    print(i.replace(',',''))
반응형
저작자표시 (새창열림)

'알고리즘 > 문제 풀이' 카테고리의 다른 글

[Python/파이썬 15665 백준] N과 M(11)  (0) 2021.04.07
[Python/파이썬 15652 백준] N과 M(4)  (0) 2021.04.06
[Python/파이썬 10819 백준] 차이를 최대로  (0) 2021.04.03
[Python/파이썬 15684 백준] 사다리 조작  (0) 2021.03.28
[Python/파이썬 14891 백준] 톱니바퀴  (0) 2021.03.25
    '알고리즘/문제 풀이' 카테고리의 다른 글
    • [Python/파이썬 15665 백준] N과 M(11)
    • [Python/파이썬 15652 백준] N과 M(4)
    • [Python/파이썬 10819 백준] 차이를 최대로
    • [Python/파이썬 15684 백준] 사다리 조작
    광규니
    광규니
    공부 및 일상 올리기~

    티스토리툴바