알파벳 대문자와 숫자(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 조건을 기억해두자
'알고리즘' 카테고리의 다른 글
백준 1920번 수 찾기 (0) | 2022.01.12 |
---|---|
[프로그래머스] 문자열 압축 (0) | 2022.01.04 |
볼링공 고르기[이코테] 그리디 (0) | 2022.01.03 |
이것이 코딩 테스트이다 - 모험가 길드 (0) | 2022.01.03 |
백준 피보나치의 수5 (0) | 2021.12.29 |