▶ 문제

: 알파벳 대문자와 숫자(0~9)로만 구성된 문자열이 입력으로 주어진다.

이때 모든 알파벳을 오름차순으로 정렬하여 이어서 출력한 뒤에, 그 뒤에 모든 숫자를 더한 값을 이어서 출력한다.

 

 입력 예시

: K1KA5CB7

  출력 예시

: ABCKK13

 

Code
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(result)
print(''.join(result))

 

 배운점

1. if x.isalpha():

: isalpha 함수를 배웠다. x가 알파벳이면 True로 if문이 시작된다. 하나라도 알파벳이 아니라면 False

알파벳이면 새로운 리스트에 append해주고, sort로 오름차순으로 정렬한다.

else 문에 알파벳이 아닌, 숫자라면 int로 변환해주고 += 해주는게 핵심.

마지막에 리스트에 append 할 때는 str(value)로 다시 문자로 바꿔줘야한다.

2. ''.join(result)

: join함수를 배웠다. join전에 print(result)하면 리스트함수로 나오게 되는데, join 함수를 사용해서 리스트 각 요소를 합쳐줬다.  꼭 알아둬야할 함수인거 같다. 유용하게 계속 쓸 듯 하다.

 

if x.isalpha():

''.join(result)

 

 

출처:  구간 51:30 즈음

https://www.youtube.com/watch?v=2zjoKjt97vQ&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=2 

 

+ Recent posts