[문제]
알파벳 대문자와 숫자(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)) 써도됨
# 리스트를 문자열로 변환하여 출력
'알고리즘 문제풀이 > 파이썬' 카테고리의 다른 글
[이코테-구현] 실전 - 10. 자물쇠와 열쇠 (0) | 2022.06.23 |
---|---|
[이코테-구현] 실전 - 09. 문자열 압축 (0) | 2022.06.21 |
[이코테-구현] 실전 - 07. 럭키 스트레이트 (0) | 2022.06.21 |
[이코테-구현] 실전 - 게임 개발 (0) | 2022.06.17 |
[이코테-구현] 실전 - 왕실의 나이트 (0) | 2022.06.17 |