Coding Test/이코테

[이코테] Chap 12. 구현 문제

ʕ민지ʔ 2024. 8. 25. 00:14

 

08. 문자열 재정렬

arr = list(input())
arr.sort()

num = 0
i = 0
for _ in range(len(arr)):
    if '0' <= arr[i] <= '9':
        num += int(arr[i])
        arr.pop(i)
    else:
        i += 1

print(''.join(arr)+str(num))

 

문자열을 arr에 리스트로 입력받고 오름차순 정렬을 한다.

num은 숫자를 더하기 위한 변수, i는 확인 인덱스를 표시하기 위한 변수이다.

 

문자열 arr의 길이만큼 반복을 진행한다.

i번째 문자가 숫자이면 (0과 9 사이이면) 숫자 합을 구하는 변수 num에 해당 수를 더하고, i번째 문자는 pop한다. 해당 원소를 pop하며 리스트에서 제외했으므로 인덱스 i는 변경하지 않는다.

숫자가 아니면 다음 인덱스의 확인을 진행한다.

 

모든 원소의 확인이 끝나면 숫자가 아닌 남은 문자 arr를 join으로 합치고 num을 문자열로 변환하여 합친다.