이 함수는 파라미터로 구분자를 주면 해당 구분자를 기준으로 문자열을 잘라 리스트 형식으로 반환합니다. 만약 파라미터에 아무것도 주지 않으면 공백을 기준으로 문자를 나눕니다.
str = "Hi my name is youngeun"
splitted_str = str.split()
print(splitted_str)
>>>['Hi', 'my', 'name', 'is', 'youngeun']
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
입력 : 문자열 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()