알고리즘 문제풀이/파이썬

[이코테-구현] 실전 - 08. 문자열 재정렬

Ella_K 2022. 6. 21. 01:04

[문제]

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

예를 들어 K1KA5CB7이라는 값이 들어오면 ABCKK13을 출력합니다.

 


 

[입력 조건]

  • 첫째 줄에 하나의 문자열 S가 주어집니다. ( 1≤ S의 길이 ≤ 10,000 )

 

[출력 조건]

  • 첫째 줄에 문제에서 요구하는 정답을 출력합니다.

 


 

[내 풀이]

🔎 아이디어

  • 알파벳과 숫자를 구분하기 위해, 문자열을 순회하면서 알파벳은 리스트에 저장하고 숫자는 정수값으로 더한다.

 

🔎 코드

s = input()

result = []
number = 0
for i in s:
  # 알파벳인 경우 list에 삽입
  if i.isalpha():
    result.append(i)
  # 숫자인 경우 따로 더하기
  else:
    number += int(i)

# 알파벳 오름차순 정렬
result.sort()

# 숫자가 하나라도 있었으면 가장 뒤에 문자로 삽입
if number != 0:
  result.append(str(number))

for i in result:
  print(i,end='')
# print(''.join(result)) 써도됨
# 리스트를 문자열로 변환하여 출력