본문 바로가기
연습

[구현] 문자열 재정렬

by ybs 2021. 11. 21.
반응형

알파벳 대문자와 숫자(0~9)로만 구성된 문자열이 입력으로 주어진다. 모든 알파벳을 오름차순으로 정렬하고 마지막엔 모든숫자들을 더한 값을 이어서 출력한다.

입력예시1 
input : AJKDLSI412K4JSJ9D
output: ADDIJJJKKLSS20

입력예시2
input : K1KA5CB7
output: ABCKK13

 

내가 작성한 코드는 try except 를 이용했다. 각 문자가 알파벳인지 숫자인지를 if문으로 비교할 수 도 있었지만 문제를 보고 즉시 생각나는것은 try except 였다.  문자 오름차순 정렬은 내장함수 sorted를 이용했기 때문에 쉬웠다.

s = input()
sum = 0
list = []
for i in range(len(s)):
  try:
    sum += int(s[i])
  except ValueError as e:
    list.append(s[i])
 
result = sorted(list)

for i in result:
  print(i, end='')
print(sum)

 

책의 답은 아래와 같다. 문자열인지 판단은 isalpha 함수, 리스트를 문자열로 출력은 join 함수를 활용했다.

data = input()
result = []
value = 0
for x in data:
  if x.isalpha():
    result.append(x)
  else:
    value += int(x)
        
result.sort()

if value != 0:
  result.append(str(value))

# 리스트를 문자열로 변환하여 출력
print(''.join(result))

 

출처 : 이것이 코딩테스트다 나동빈 저

반응형

'연습' 카테고리의 다른 글

[구현] 자물쇠와 열쇠  (0) 2021.12.06
[구현] 문자열 압축  (0) 2021.11.29
[구현] 럭키 스트레이트  (0) 2021.11.14
[구현] 게임 개발  (0) 2021.11.08
[구현] 왕실의 나이트  (0) 2021.10.31