CodingTest/Baekjoon

[baekjoon] 백준 16179번(파이썬): ZOAC

JunJangE 2022. 5. 20. 18:16

문제

 

16719번: ZOAC

2018년 12월, 처음 시작하게 된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 앞 글자부터 하나씩 보여주는 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로

www.acmicpc.net

알고리즘

- 재귀 함수를 통해 제일 작은 알파벳의 앞 배열과 뒷 배열을 확인한다.

- answer에 제일 작은 알파벳 위치에 제일 작은 알파벳을 입력하고 "".Join()을 통해 출력한다.

코드

import sys


def solution(s, start):
    global answer

    # 배열이 없으면 리턴
    if not s:
        return

    # 현재 배열의 제일 작은 알파벳을 찾는다.
    target = min(s)
    idx = s.index(target)

    # answer에 제일 작은 알파벳 위치에 제일 작은 알파벳을 추가.
    answer[start + idx] = target
    print("".join(answer))

    solution(s[idx + 1:], start + idx + 1) # 뒷 배열 확인
    solution(s[:idx], start) # 앞 배열 확인


word = list(map(str, sys.stdin.readline().strip()))
answer = [''] * len(word)
solution(word, 0)

github

 

GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법

내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.

github.com