[이코테] 문자열 재정렬 - 구현

jckim22·2023년 7월 3일
0

[ALGORITHM] STUDY (PS)

목록 보기
12/86

1. 문제 설명

2. 문제 검토

문자열을 다루는 단순 구현이다.

3. 풀이

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() 메서드로 리스트의 문자들을 문자열로 출력할 수 있음을 알았다.

4. 걸린 시간

13분 46초

5. 총평

문자열을 조금 더 친숙하게 다를 수 있는 문제였다.

profile
개발/보안

0개의 댓글