문제
알고리즘
- 재귀 함수를 통해 제일 작은 알파벳의 앞 배열과 뒷 배열을 확인한다.
- 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
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 11048번(파이썬): 이동하기 (0) | 2022.06.02 |
---|---|
[baekjoon] 백준 1107번(파이썬): 리모컨 (0) | 2022.05.25 |
[baekjoon] 백준 19583번(파이썬): 싸이버개강총회 (0) | 2022.05.19 |
[baekjoon] 백준 3107번(파이썬): IPv6 (0) | 2022.05.18 |
[baekjoon] 백준 2257번(파이썬): 화학식량 (0) | 2022.05.17 |