본문 바로가기

두두의 알고리즘/문제

[구현] 난이도1, Facebook 인터뷰 '문자열 재정렬' (Python)

728x90

<문제>

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

예를 들어 K1KA5CB7이라는 값이 들어오면 ABCKK13을 출력합니다.

 

<입력 조건>

  • 첫째 줄에 하나의 문자열 S가 주어집니다. (1 <=S의 길이 <=10,000)

<출력 조건>

  • 첫째 줄에 문제에서 요구하는 정답을 출력합니다.

<문제 풀이>

  1. S에 숫자(0~9)가 있다면 sum_ 변수에 저장
  2. 문자라면 result 변수에 저장

<코드>

'''
K1KA5CB7

AJKDLSI412K4JSJ9D
'''
s = input()
sum_ = 0
result = ''
for i in sorted(s):
    if i in '0123456789':
        sum_ += int(i)
    else:
        result += i
print(result+str(sum_))
#220321

s = input()

num = 0
answer = ''
for i in sorted(s):
    if i.isnumeric():
        num += int(i)
    else:
        answer += i
        
answer += str(num)

print(answer)

 

<고쳐야 할 점>

  • 문자.isalpha() 기억하기!