💻 입력 조건

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

💻 출력 조건

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

💻 입력 예시1

K1KA5CB7

💻 출력 예시1

ABCKK13

💻 입력 예시2

AJKDLSI412K4JSJ9D

💻 출력 예시2

ADDIJJJKKLSS20

📖 문제 해결
리스트에 차례대로 알파벳 대문자와 숫자를 넣으면, 알파벳과 숫자가 순서대로 정렬이 된다는 점과 문자로써 읽어온 정수의 아스키코드가 57이하라는 점을 이용하여 문제를 해결하였습니다.

# 문자열 s 입력받기
s = list(map(str,input()))

# s를 알파벳 대문자와 숫자 순서대로 정렬
s.sort()

# 숫자를 모두 더해서 저장해 놓을 변수인 sum_
sum_ = 0

# 알파벳을 순서대로 더해서 저장해 놓을 변수인 string_
string_ = ''

for string in s:
	
    # 아스키 코드가 57 이하라면 정수이므로 sum_변수에 더하기
    if ord(string) <= 57:
        sum_ += int(string)
    
    # 아스키 코드가 57을 초과하면 알파벳이므로 string_변수에 더하기
    else:
        string_ += string

# 모든 알파벳을 오름차순으로 정렬하여 이어서 출력하고
# 문자열 뒤에 모든 숫자를 더한 값을 이어서 출력
print(string_+str(sum_))
profile
AI를 공부하고 있는 학생입니다:)

0개의 댓글