[이코테] 구현 문제 풀이 - 문자열 재정렬
본 내용은 나동빈 님의 ‘이것이 취업을 위한 코딩 테스트다 with 파이썬’ 책을 공부하며 쓴 글입니다.
Q8. 문자열 재정렬
문제 요약
알파벳 대문자와 숫자(0~9)로만 구성된 문자열이 입력된다. 이때 모든 알파벳을 오름차순으로 정렬하여 출력한 뒤, 그 뒤에 모든 숫자를 더한 값을 이어서 출력한다.
풀이 순서
- 문자를 하나씩 확인한 뒤에, 숫자인 경우 따로 합계를 계산하고, 알파벳인 경우 별도의 리스트에 저장한다.
- 최종 리스트를 문자열로 변환하여 출력한다.
답안 예시
data = input()
result = []
num_sum = 0
for x in data:
if x.isalpha():
result.append(x)
else:
num_sum += int(x)
result.sort()
# 숫자가 하나라도 존재하는 경우 가장 뒤에 삽입
if num_sum != 0:
result.append(str(num_sum))
# 최종 리스트를 문자열로 변환하여 출력
print(“”.join(result))
느낀점
- 알파벳 확인을 ord 를 사용하여 시도했는데, isalpha 메서드를 사용하면 훨씬 간편하게 할 수 있었다.
문자열 메서드
isalpha()
- 알파벳, 한글이면 True 출력
- 공백, 숫자, ‘:’ 등이 있으면 False 출력
- 알파벳만 True 로 인식하고 싶은 경우, “문자열.encode().isalpha()” 로 입력하면 됨
isalnum()
- 알파벳, 한글, 숫자이면 True 출력
- 공백, 숫자, ‘:’ 등이 있으면 False 출력
isdecimal()
- int 타입으로 변환 가능한 숫자면 True 출력
isdigit()
- 숫자처럼 생긴 글자(제곱, 세제곱 등)면 True 출력
- isdecimal() 보다 넓은 범위
isnumeric()
- 숫자처럼 생긴 글자(제곱, 제곱근, 분수 등)면 True 출력
- isdigit() 보다 넓은 범위
isupper()
- 영어 대문자로만 구성된 경우 True 출력
islower()
- 영어 소문자로만 구성된 경우 True 출력
Author And Source
이 문제에 관하여([이코테] 구현 문제 풀이 - 문자열 재정렬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@kgorae/이코테-구현-문제-풀이-문자열-재정렬
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
알파벳 대문자와 숫자(0~9)로만 구성된 문자열이 입력된다. 이때 모든 알파벳을 오름차순으로 정렬하여 출력한 뒤, 그 뒤에 모든 숫자를 더한 값을 이어서 출력한다.
- 문자를 하나씩 확인한 뒤에, 숫자인 경우 따로 합계를 계산하고, 알파벳인 경우 별도의 리스트에 저장한다.
- 최종 리스트를 문자열로 변환하여 출력한다.
data = input()
result = []
num_sum = 0
for x in data:
if x.isalpha():
result.append(x)
else:
num_sum += int(x)
result.sort()
# 숫자가 하나라도 존재하는 경우 가장 뒤에 삽입
if num_sum != 0:
result.append(str(num_sum))
# 최종 리스트를 문자열로 변환하여 출력
print(“”.join(result))
Author And Source
이 문제에 관하여([이코테] 구현 문제 풀이 - 문자열 재정렬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kgorae/이코테-구현-문제-풀이-문자열-재정렬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)