문제
알파벳 대문자와 숫자(0~9)로만 구성된 문자열이 입력으로 주어집니다.
이때 모든 알파벳을 오름차순으로 정렬하여 이어서 출력한 뒤에, 그 뒤에 모든 숫자를 더한 값을 이어서 출력합니다.
예를 들어 K1KA5CB7 이라는 값이 들어오면 ABCKK13을 출력합니다.
입력 조건
- 첫째 줄에 하나의 문자열 S가 주어집니다. (1 <= S의 길이 <= 10,000)
출력 조건
- 첫째 줄에 문제에서 요구하는 정답을 출력합니다.
입력 예시 1
더보기
K1KA5CB7
출력 예시 1
더보기
ABCKK13
입력 예시 2
더보기
AJKDLSI412K4JSJ9D
출력 예시 2
더보기
ADDIJJJKKLSS20
✔ Solution
S = input()
# 문자가 문자열인지 숫자인지 구분
alpha = [x for x in S if x.isalpha()]
num = sum([int(x) for x in S if x.isdigit()])
# 알파벳 정렬
alpha.sort()
if num != 0 :
alpha.append(str(num))
print(''.join(alpha))
⭐ 문제 포인트
- 문자와 숫자를 구분하여 저장해준다.
- sort()를 이용해서 문자를 정렬해준다.
- 문자가 저장된 alpha에 num의 합을 str()로 감싸서 넣어준다
- join을 이용해 출력해준다.
# 필요 개념
1. isdigit()
- 문자열이 숫자인지 아닌지를 True,False로리턴
2. isalpha()
- 문자열이 문자인지 아닌지를 True,False로리턴
'알고리즘 > 기타 알고리즘' 카테고리의 다른 글
[완전 탐색, 시뮬레이션] 시각 (0) | 2022.01.24 |
---|---|
[완전 탐색] 상하 좌우 (0) | 2022.01.24 |
[Python] permutation, combination 순열과 조합 (0) | 2022.01.24 |
[그리디 Greedy] 볼링공 고르기 (0) | 2022.01.24 |
[그리디 Greedy] 곱하기 혹은 더하기 (0) | 2022.01.24 |