[BOJ] 1759 암호 만들기

2021. 7. 27. 19:46· Koala - 4기

솔직히 백트래킹이나 완전탐색이 뭔지 대략적으로 느껴지긴 하지만 정확히 이게 ~다 라고 못하겠습니다.. 그냥 다 돌아본다 이런 느낌은 받고 있습니다.

이번 같은 경우는 dfs로 구현을 해보았는데 일단 입력받은 문자를 정렬시키고 사용할 문자의 인덱스값을 함수에 전달시켜줘서 무조건 이전 인덱스보다 뒤에, 즉 사전순으로 정렬되도록 하였습니다. 총 전달하는 값은 4개의 값을 전달시켜주었습니다. (현재 단어, 가장 마지막에 사용한 문자의 인덱스, 자음의 개수, 모음의 개수) 이렇게 4개를 전달시켜주었고, c와 단어의 길이가 같아지면 자음의 개수와 모음의 개수가 같다면 print하고 return 아니면 그냥 return 해주었습니다.

자음 모음 판별은 그냥 a e i o u가 들어간 리스트에 해당 스펠링이 들어있나 없나를 구한 뒤 자음에는 not을 붙여서, 모음에는 그냥 전달해주었습니다.

from sys import stdin
input=stdin.readline

l,c=map(int,input().split())
spelling=sorted(input().rstrip().split())
moeum_list=['a','e','i','o','u']

def dfs(word,_idx,jaeum,moeum):
    if len(word)==l:
        if jaeum>1 and moeum>0:
            print(''.join(word))
        return
    for i in range(_idx+1,c):
        is_moeum = spelling[i] in moeum_list
        dfs(word+[spelling[i]],i,jaeum+(not is_moeum),moeum+is_moeum)

dfs([],-1,0,0)

이쁘게 잘 짜여진 것 같습니다.

 

저작자표시

'Koala - 4기' 카테고리의 다른 글

[BOJ] 11278 2-SAT 2  (0) 2021.07.31
[BOJ 1759] : 암호 만들기  (0) 2021.07.27
[BOJ] 휴게소 세우기 1477번  (0) 2021.07.27
[BOJ] 1477 휴게소 세우기  (0) 2021.07.27
[BOJ] 1477 휴게소 세우기  (4) 2021.07.26
'Koala - 4기' 카테고리의 다른 글
  • [BOJ] 11278 2-SAT 2
  • [BOJ 1759] : 암호 만들기
  • [BOJ] 휴게소 세우기 1477번
  • [BOJ] 1477 휴게소 세우기
KauKoala
KauKoala
항공대 알고리즘 동아리 Koala 🥰
KauKoala
Koala
KauKoala
전체
오늘
어제
  • 분류 전체보기 (1831)
    • 공지 게시판 (10)
    • 정보 게시판 (8)
    • Codeforce (15)
    • acm-icpc (6)
    • Koala - 1기 (16)
    • Koala - 2기 (111)
      • Programming Contest (1)
      • A반 (20)
      • B반 (39)
      • C반 (22)
      • 기초 강의 (18)
    • Koala - 3기 (10)
      • 기초 스터디 (7)
    • Koala - 4기 (67)
    • Koala - 5기 (144)
      • 기초 알고리즘 스터디 (75)
      • 코딩테스트 준비 스터디 (68)
    • Koala - 6기 (102)
      • 기초 알고리즘 스터디 (75)
      • 코딩테스트 준비 스터디 (25)
      • 모의 테스트 스터디 (1)
    • Koala - 7기 (167)
      • 기초 알고리즘 스터디 (97)
      • 코딩테스트 준비 스터디 (68)
      • 모의 테스트 스터디 (1)
    • Koala - 8기 (44)
      • 기초 알고리즘 스터디 (32)
      • 코딩테스트 준비 스터디 (10)
      • 코드포스 버츄얼 스터디 (0)
      • 프로그래머스 LV2 스터디 (0)
    • Koala - 9기 (205)
      • 기초 알고리즘 스터디 (138)
      • 코딩테스트 준비 스터디 (64)
      • 모의테스트 준비 스터디 (1)
    • Koala - 10기 (117)
      • 기초 알고리즘 스터디 (30)
      • 코딩테스트 준비 스터디 (86)
      • 모의테스트 준비 스터디 (1)
    • Koala - 11기 (151)
      • 기초 알고리즘 스터디 (46)
      • 코딩테스트 준비 스터디 (104)
      • 모의테스트 준비 스터디 (1)
    • Koala - 12기 (86)
      • 기초 알고리즘 스터디 (31)
      • 코딩테스트 준비 스터디 (55)
    • Koala - 13기 (119)
      • 기초 알고리즘 스터디 (52)
      • 코딩테스트 준비 스터디 (67)
    • Koala - 14기 (116)
      • 기초 알고리즘 스터디 (39)
      • 코딩테스트 준비 스터디 (77)
    • Koala - 15기 (138)
      • 기초 알고리즘 스터디 (73)
      • 코딩테스트 준비 스터디 (65)
    • Koala - 16기 (47)
      • 코딩테스트 기초 스터디 (16)
      • 코딩테스트 심화 스터디 (31)
    • Koala - 17기 (62)
      • 코딩테스트 기초 스터디 (15)
      • 코딩테스트 심화 스터디 (47)
    • Koala - 18기 (20)
      • 코딩테스트 기초 스터디 (8)
      • 코딩테스트 심화 스터디 (12)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 🐨항공대 알고리즘 학회 Koala 3기 모집
  • 🐨항공대 알고리즘 학회 Koala 2기 모집
  • 소모임 소개

인기 글

태그

  • BFS
  • dp
  • 파이썬
  • 백트래킹
  • BOJ
  • 백준
  • dfs
  • C++

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.3.0
KauKoala
[BOJ] 1759 암호 만들기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.