@Eeap
velog
@Eeap
전체 방문자
오늘
어제
  • 전체 (168)
    • osam (1)
    • Cloud (21)
      • Docker (2)
      • AWS (13)
    • AI & Data (7)
    • Algorithm (76)
      • Baekjoon (75)
      • Codeforces (1)
    • Language (18)
      • Java (18)
    • Back-end (17)
      • Spring (3)
      • JSP & Servlet (12)
      • Go (2)
    • 일상 (4)
    • 기타 (8)
    • git (1)
    • Infra (9)
      • Apache Kafka (5)
      • Kubernetes (4)
      • 기타 (0)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 오블완
  • sagemaker unified studio
  • 심폴릭링크
  • java
  • Python
  • AWS CodeCatalyst
  • 티스토리챌린지
  • bedrock
  • SageMaker
  • Agent
  • 인터페이스
  • invokemodel api
  • knowledge bases
  • converse api
  • AWS CodeArtifact
  • AWS CodeStar
  • bedrock agent
  • CLASS
  • bedrock api
  • flink

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
@Eeap

velog

Algorithm/Baekjoon

Python 1759번 암호 만들기

2022. 7. 28. 21:55
반응형

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

 

1759번: 암호 만들기

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

www.acmicpc.net

처음 일단 입력받은 array는 정렬이 안되어있기 때문에 정렬 시켜준 뒤

브루트 포스 방식으로 하기 위해서 일단 준비해야하는건

문자가 사용된 문자인지 알기 위해서 temp라는 리스트를 만들어서 문자의 개수만큼 0으로 만들어준다

그 다음 처음부터 끝까지 계속돌면서 문자가 사용되지 않았고 그 이전에 넣었던 값보다 큰지 확인하고 일치하다면 모음인 경우엔 a라는 카운트를 하나 추가하고 자음인 경우 b라는 카운트를 추가한다.

그 후 재귀 방식으로 계속해서 이어나가고 재귀가 끝난 다음에는 이 문자가 다른 경우에도 사용될 수 있게 다시 temp[i]를 0으로 초기화해준다

그러다가 cnt가 문제에서 요구되는 문자열의 개수와 일치할때 a값과 b값이 기준에 만족하는 확인하고 만족하면 출력한다.

 

import sys

input= sys.stdin.readline

l,c=map(int,input().split())
ary = list(input().split())
ary.sort()
temp = [0]*c
def recur(temp,a,b,cnt,res,item):
    for i in range(c):
        if cnt >= l:
            if a >= 1 and b >= 2:
                print(res)
            return
        if not temp[i] and item < ary[i]:
            if ary[i] in ['a','e','i','o','u']:
                temp[i]=1
                recur(temp,a+1,b,cnt+1,res+ary[i],ary[i])
                temp[i]=0
            else:
                temp[i]=1
                recur(temp,a,b+1,cnt+1,res+ary[i],ary[i])
                temp[i]=0

recur(temp,0,0,0,"",".")
반응형
저작자표시 (새창열림)

'Algorithm > Baekjoon' 카테고리의 다른 글

Python 1182번 부분수열의 합  (0) 2022.07.31
Python 6603번 로또  (0) 2022.07.29
2096번 파이썬  (0) 2022.05.04
1309번 파이썬  (0) 2022.04.13
1965번 파이썬  (0) 2022.04.13
    'Algorithm/Baekjoon' 카테고리의 다른 글
    • Python 1182번 부분수열의 합
    • Python 6603번 로또
    • 2096번 파이썬
    • 1309번 파이썬
    @Eeap
    @Eeap

    티스토리툴바