▶ 문제
: 알파벳 대문자와 숫자(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
'알고리즘 > 기타' 카테고리의 다른 글
[이코테] 음료수 얼려 먹기 (DFS).py (0) | 2023.01.07 |
---|---|
[이코테] 왕실의 나이트(그리디&구현).py (1) | 2023.01.07 |
[이코테] 시각(그리디&구현).py (0) | 2023.01.07 |