CodingTest/완전 탐색(구현)

문자열 재정렬

seongduck 2022. 7. 7. 12:14

1. 문제 설명

출처 : 이코테2021

 

2. 문제 조건

 

3. 문제 해결 아이디어

  • 요구사항대로 충실히 구현
  • 숫자인 경우 따로 합계를 계산
  • 알파벳은 별도의 리스트에 저장
  • 알파벳 정렬을 출력하고 그 뒤에 합계를 붙이기

 

4. 풀이

data = input()
alpabat = []
result = 0

for i in data:
    if(('A' <= i) | ('Z' <= i)):
        alpabat.append(i)
    else:
        result += int(i)
        
alpabat.sort()
alpabat.append(str(result))

print(''.join(alpabat))

연속되서 입력받으므로 문자열로 입력을 받고 분리해준다.

알파벳만 담길 리스트인 alpabat, 정수총합을 계산할 result

i가 대문자 알파벳일 경우 리스트에 넣어주고 그외엔 정수형으로 변환뒤 더해준다.

그 이후 계산된 정수형을 다시 문자열로 만들어주고 리스트형을 문자열처럼 출력해준다.

 

4-1. 표준 답안

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))

 

5. 새롭게 알게된 것

# 알파벳인 경우만 고르기
변수.isalpha()