문자열을 다루는 단순 구현이다.
s = input()
s= sorted(s)
cnt=0
num=0
for x in s:
if x >= 'A' and x <='z':
break
cnt+=1
for x in range(cnt):
num+=int(s[x])
answer = s[cnt:]
if num != 0:
answer += str(num)
# for x in answer:
# print(x,end='')
print(''.join(answer))
처음 접근했던 풀이이다.
슬라이싱을 이용하여 문제를 해결했다.
숫자가 하나도 없을 때 예외처리가 있었다.
for x in s:
if x.isalpha():
answer.append(x)
else:
num+=int(x)
answer = sorted(answer)
if num != 0:
answer.append(str(num))
print(''.join(answer))
풀이를 보고 힌트를 얻고 다시 작성한 코드이다.
나의 풀이는 새로운 리스트를 사용하지 않고 원래 리스트를 슬라이싱하며 문제를 풀었다고 하면 이 방법은 새로운 리스트에 stack구조로 append하며 문제를 풀어가는 방식이다.
isalpha() 메서드로 해당 요소가 알파벳인지의 여부를 찾을 수 있고 for문 없이 join() 메서드로 리스트의 문자들을 문자열로 출력할 수 있음을 알았다.
13분 46초
문자열을 조금 더 친숙하게 다를 수 있는 문제였다.