업데이트:

❓ 문제


문제

문제

✏ 나의 풀이


1
2
3
4
s = sorted(input())
h = sum([int(x) for x in s if x.isdigit()])
r = [ss for ss in s if ss.isalpha()] + [str(h)]
print(''.join(r))

문자가 알파벳인지를 판별해주는 isalpha()와 문자가 숫자인지를 판별해주는 isdigit()을 사용하여 입력받은 문자열을 나눠주었다.

💡 문제 해결 아이디어


이 문제 역시 요구사항대로 충실히 구현하면 된다.

문자열이 입력되었을 때 문자를 하나씩 확인한다.

숫자인 경우 따로 합계를 계산하고, 알파벳인 경우 별도의 리스트에 저장한다.

결과적으로 리스트에 저장된 알파벳을 정렬해 출력하고, 합계를 뒤에 붙여 출력하면 정답이다.

✔️ 파이썬 답안 예시


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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))

💬 풀이 평가


파이썬 내장 함수가 있어 풀이를 쉽게 할 수 있었다. 특히 isdigit()isalpha()와 같은 함수는 꼭 알아두어야겠다.

Notice: 이 게시물은 한빛미디어의 이것이 코딩 테스트다 영상과 교재를 참고하였습니다.

댓글남기기