반응형
「이것이 취업을 위한 코딩 테스트다」 p. 322
알고리즘 유형별 기출문제 08번 - 문자열 재정렬
🧩 문제 설명
알파벳 대문자와 숫자(0~9)로만 이루어진 문자열을 입력받아 모든 알파벳을 오름차순으로 정렬한 뒤, 그 뒤에 모든 숫자를 더한 값을 출력하기
입력 예시
ADC4GX683
출력 예시
ACDGX21
😃 문제 풀이
data = input()
result = []
value = 0
- 문자열을 input() 함수를 통해 입력받는다.
- 결과 값을 저장하기 위해 빈 리스트를 생성한다. result = []
- 숫자의 합을 출력해야 하기 때문에 계속해서 합을 할 수 있도록 변수 하나를 생성한다. value = 0
for i in data:
if i.isalpha():
result.append(i)
else:
value += int(i)
- for 문을 이용하여 입력받은 문자열이 알파벳인지 숫자인지 하나씩 확인한다.
- isalpha() 함수를 사용하여 문자가 알파벳인지 확인할 수 있다. 만약 알파벳이라면, result 리스트에 append를 사용하여 추가한다.
- 알파벳이 아니라면 문자를 int함수를 이용해 정수형으로 바꿔준 뒤 value 값에 더해준다. (계속해서 합을 하기 위해)
result.sort()
- 알파벳이 오름차순으로 정렬되게 하기 위해 sort 함수를 사용하여, 문자열을 정렬한다.
if value != 0:
result.append(value)
- 숫자가 존재한다면, 모든 숫자의 합으로 만든 value 값을 알파벳 정렬이 된 리스트인 result에 append를 활용하여 붙여준다.
print("".join(result))
- 마지막으로 출력을 하기 위해, join 함수를 사용한다. join 함수는 리스트를 구분자를 사용하여 문자열로 바꾸어주는 함수이다. 구분자 없이 문자열로 만들기 위해 ""를 사용했다.
728x90
댓글