[공부] 파이썬 문자열 문법, 문자열 재정렬 문제
python문법
문자열 나누기 - .split(구분자)함수
이 함수는 파라미터로 구분자를 주면 해당 구분자를 기준으로 문자열을 잘라 리스트 형식으로 반환합니다. 만약 파라미터에 아무것도 주지 않으면 공백을 기준으로 문자를 나눕니다.
str = "Hi my name is youngeun"
splitted_str = str.split()
print(splitted_str)
>>>['Hi', 'my', 'name', 'is', 'youngeun']
문자열 합치기 - ''.join(리스트)함수
join함수는 리스트의 문자열들을 합치는 역할을 합니다.
str = "Hi my name is youngeun"
splitted_str = str.split()
print(splitted_str)
>>>['Hi', 'my', 'name', 'is', 'youngeun']
joined_str = "".join(splitted_str)
print(joined_str)
>>>Himynameisyoungeun
위 방법은 단순히 문자열을 붙히기만 합니다. 이어줄 문자 사이에 특정 문자를 넣고 싶다면 아래와 같이 사용할 수 있습니다.
"특정문자열".join(리스트)
str = "Hi my name is youngeun"
splitted_str = str.split()
print(splitted_str)
joined_str = "_".join(splitted_str)
print(joined_str)
>>>Hi_my_name_is_youngeun
문자열 재정렬 문제
- 알파벳 대문자와 숫자(0~9)로만 구성된 문자열이 입력으로 주어짐
- 이때 모든 알파벳을 오름차순으로 정렬하여 이어서 출력한 뒤, 그 뒤에 모든 숫자를
더한 값을 이어서 출력한다
예) K1KA5CB7 -> ABCKK13
입력 : 문자열 S가 주어진다. (1 <= S <= 10,000)
출력 : 알파벳 순서대로 출력 + 숫자는 계산하여 출력
data = input()
result = []
value = 0
# for 문으로 문자를 하나씩 확인하며
for x in data:
if x.isalpha(): # isalpha() 함수로 알파벳일 때, 결과 리스트에 삽입
result.append(x)
else: # 숫자라면
value += int(x) # 문자열로 받았으니까 int 정수형으로 바꿔주고 합산함
# 알파벳 오름차순 정렬
result.sort()
# 숫자가 하나라도 존재하면 가장 뒤에 삽입
if value != 0: # 숫자를 입력하지 않을 수 도 있음.
result.append(str(value)) # 숫자 int니까 다시 문자열로 바꿔서 result 뒤에 넣어줌
print(''.join(result)) # 공백없이, 리스트에 포함된 모든 문자열을 합쳐서 나열
결과>
<풀이과정>
- 문자열 입력되었을 때 문자를 하나씩 확인
- 숫자인 경우 따로 합계 계산
- 알파벳의 경우 별도의 리스트에 저장
- 결과적으로 리스트에 저장된 알파벳을 정렬해 출력하고, 합계를 뒤에 붙여 출력하면 정답
- 사용된 함수 :
.isalpha()
,.sort()
,.append()
,str()
,int()
,''.join()
Author And Source
이 문제에 관하여([공부] 파이썬 문자열 문법, 문자열 재정렬 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@choi46910/공부-파이썬-문자열-문법-문자열-재정렬-문제저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)