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

 

<나의 풀이>

s = input()

charList = []
numList = []

for i in range(len(s)):
    if ord(s[i]) >= 65:
        charList.append(s[i])
    else:
        numList.append(s[i])

charList.sort()
numList.sort()

for i in range(len(charList)):
    print(charList[i], end='')
for i in range(len(numList)):
    print(numList[i], end='')

 

해당 문제는 문자의 크기를 비교하고 해당 문자가 숫자인지 알파벳인지 구별해야한다.

- 문자의 크기를 비교하여 정렬하는 것은 sort()함수를 호출하면된다.

- 해당 문자가 숫자인지 알파벳 인지는 ord(s[i]) >= 65를 이용하여 구할수 있다.

65이상 값이 알파벳으로 분류되는 것은 A의 아스키 코드 값이 65이기 때문이다.

앞으로도 종종 알파벳인지 숫자인지 구별할 필요가 있을 것으로 생각되므로 ord(s[i]) >= 65 조건을 기억해두자

+ Recent posts