16719번: ZOAC

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

www.acmicpc.net


재귀를 통해 작은 알파벳을 선택한다.

 

  1. 정답을 출력할 result 배열을 만든다.
  2. arr에서 제일 작은 알파벳을 찾는다.
  3. 해당 알파벳을 기준으로 뒷배열에서 또 작업을 한 뒤, 앞배열에서 작업을 한다.

 

import sys
input = sys.stdin.readline

S = list(input().rstrip())
result = ['']*len(S)


def func(arr, start):
    if not arr:
        return
    _min = min(arr)
    idx = arr.index(_min)
    result[start+idx] = _min
    print("".join(result))
    func(arr[idx+1:], start+idx+1)
    func(arr[:idx], start)


func(S, 0)
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기