문제
알파벳 대문자와 숫자로만 이루어진 문자열에 대해서 모든 알파벳을 오름차순으로 정렬하고 이 후, 모든 숫자를 더한값을 뒤에 붙여라
"K1KA5CB7" -> ABCKK13
유형
요구하는 것을 그대로 구현하면 되는 문제이다. 따라서 구현문제로 볼 수 있다.
코드
input = "K1KA5CB7"
input = "AJKDLSI412K4JSJ9D"
str_list = []
num = 0
for i in range(len(input)):
if input[i].isalpha():
str_list.append(input[i])
continue
num += int(input[i])
str_list.sort()
result = []
for i in range(len(str_list)):
result.append(str_list[i])
if num != 0:
result.append(str(num))
print("".join(result))
해결
- isalpha()를 통해 알파벳이면 알파벳리스트에, 숫자면 num에 더한다.
- sort()를 통해 알파벳을 정렬한다.
- num이 있다면 마지막에 str로 붙여준다.
- join으로 list를 그대로 출력
시간 복잡도
- O(N)
주의
- 변수의 이름은 항상 없는 이름으로 지을 것을 명심하자.
- 숫자가 없는 경우 처럼 여러가지 경우의 수를 항상 고려하자.