알고리즘

[알고리즘] Facebook 인터뷰 - 문자열 재정렬

j9972 2022. 8. 20. 22:05
728x90

문제

알파벳 대문자와 숫자로만 구성된 문자열이 입력으로 주어진다

이떄 모든 알파벳을 오름차순으로 출력한 뒤, 뒤에 모든 숫자를 합치기

 

접근

1. 문자열 형태로 데이터를 받아서 re을 통해서 문자열과 숫자를 구분한다

2. 숫자들을 정수형의 리스트로 만들어 합을 구한다

3. 문자열을 정렬을 하고 그 뒤에 이어 붙인다

풀이

# 문자열에서 숫자와 문자 구분하는데 있어서 좋음
import sys
import re
input = sys.stdin.readline

s = input()

# 문자열에서 숫자랑 문자만 구분해서 별도로 리스트 만들기
numbers = re.findall('\d', s)
alphas = re.findall('[A-Z]', s)

# sort가 아닌 sorted를 써야한다
# 문자형식으로 되어 있는 숫자를 정수형으로 바꿈
number = list(map(int, numbers))
alphas = sorted(alphas)

# alphas 리스트에 number 추가
alphas.append(str(sum(number)))


# 리스트를 문자열로 합치는 방법
print(''.join(s for s in alphas))