728x90
반응형
문자열 재정렬
알파벳 대문자와 숫자(0 ~ 9)로만 구성된 문자열이 입력으로 주어집니다. 이때 모든 알파벳을 오름차순으로 정렬하여 이어서 출력한 뒤에, 그 뒤에 모든 숫자를 더한 값을 이어서 출력합니다.
예를 들어 K1KA5CB7이라는 값이 들어오면 ABCKK13을 출력합니다.
입력 조건
- 첫째 줄에 하나의 문자열 S가 주어집니다. ( 1≤ S의 길이 ≤ 10,000 )
출력 조건
- 첫째 줄에 문제에서 요구하는 정답을 출력합니다.
입력 1
K1KA5CB7
출력 1
ABCKK13
입력 2
AJKDLSI412K4JSJ9D
출력 2
ADDIJJJKKLSS20
풀이
숫자를 더하는 변수와 알파벳을 모으는 변수를 분리시켰다. 어차피 알파벳은 sort함수로 한번에 정렬할 수 있으니 그냥 알파벳인가 아닌가에 따라 append하고 후에 정렬, 그리고 숫자의 합을 더한 값을 마지막으로 append했다.
코드
data = input()
num = 0
result = []
for i in range(len(data)):
if ord('0')<=ord(data[i])<=ord('9'):
num += int(data[i])
else:
result.append(data[i])
result.sort()
result.append(num)
print(*result,sep=(''))
728x90
반응형
'Algorithm > 이것이 취업을 위한 코딩테스트다' 카테고리의 다른 글
(기출 / 구현) 자물쇠와 열쇠 (0) | 2023.06.07 |
---|---|
(기출 / 구현) 문자열 압축 (0) | 2023.06.07 |
(기출 / 구현) 럭키 스트레이트 (0) | 2023.06.06 |
(실전/구현) 게임 개발 (0) | 2023.06.06 |
(실전/구현) 왕실의 나이트 (0) | 2023.05.30 |