본문 바로가기

Algorithm/Implementation

문자열 재정렬

 

문제

알파벳 대문자와 숫자로만 이루어진 문자열에 대해서 모든 알파벳을 오름차순으로 정렬하고 이 후, 모든 숫자를 더한값을 뒤에 붙여라

 

 

"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)

 

 

주의

- 변수의 이름은 항상 없는 이름으로 지을 것을 명심하자.

- 숫자가 없는 경우 처럼 여러가지 경우의 수를 항상 고려하자.

'Algorithm > Implementation' 카테고리의 다른 글

치킨 배달  (0) 2023.04.14
  (0) 2023.04.09
럭키 스트레이트  (0) 2023.04.09
게임 개발  (0) 2023.04.09
왕실의 나이트  (0) 2023.04.08