코딩테스트 문제풀이

[이것이 코딩테스트다] 문자열 재정렬

꿈꿈개 2022. 8. 30. 16:00

문제

알파벳 대문자와 숫자(0-9)로만 구성된 문자열이 입력으로 주어질 때, 모든 알파벳을 오름차순으로 정렬하여 이어서 출력한 뒤, 숫자는 모두 합산하여 문자 뒤에 모든 숫자를 더한 값을 이어서 출력한다.

 

입력 조건

첫째줄에 하나의 문자열 S가 주어짐 (1<=S의 길이<=10,000)

 

출력 조건

첫째 줄에 뭄ㄴ제에서 요구하는 정답을 출력

 

입력 예시

K1KA5CB7

출력 예시

ABCKK13

 

해결 방법

구현 문제이다. 문자열 S를  sort함수로 정렬한 뒤 큐에 삽입해 하나씩 보면서 알파벳인지 숫자인지 확인하고 숫자일 경우 값을 더해가며 저장 한 뒤 문자열과 숫자합을 출력한다

 

코드

from collections import deque
s=input()
s=list(s)
s.sort()
q=deque(s)
sum_num=0
for i in s :
    if not i.isalpha() :
        i=int(i)
        sum_num+=i
        q.popleft()
    else :
        break
if sum_num!=0:
    print("".join(q)+str(sum_num))
else :
    print("".join(q))