[PART3] 8. 문자열 재정렬

코뉴·2021년 1월 14일
0

이코테: 문제풀이

목록 보기
14/28

알고리즘 유형별 기출문제: 구현

💻 8. 문자열 재정렬

난이도🖤🤍🤍 | 풀이시간 20분 | 제한시간 1초 | 메모리제한 128MB | 기출 Facebook인터뷰


📌2021/01/14 작성 코드

빠져있는 부분: 숫자가 하나도 포함되지 않았을 때는 숫자가 출력이 되면 안되는데 내 코드는 input이 알파벳으로만 구성되어 있어도 마지막에 0이 딸려 나온다! 이를 수정해야한다.

s = input()
alpha = []
sum = 0
for i in range(len(s)):
    # 알파벳
    if s[i].isalpha():
        alpha.append(s[i])
    # 숫자
    else:
        sum += int(s[i])
# 알파벳 정렬
alpha.sort()
# 출력
for x in alpha:
    print(x, end='')
print(sum)

💭 아이디어

isalpha() 이용!


🤓 문제 해설

요구하는 내용을 그대로 구현

문자열이 입력되었을 때 문자를 하나씩 확인한 뒤에, 숫자인 경우 따로 합계를 계산하고, 알파벳인 경우 별도의 리스트에 저장한다.
그래서 결과적으로 리스트에 저장된 알파벳들을 정렬해 출력하고, 합계를 뒤에 붙여서 출력하면 정답 판정을 받을 수 있다.


🤓 답안 예시

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

🤔 리뷰

  • Python이라서 엄청 간단하게 짤 수 있었다.
  • 답안 예시와 비교해보고 나서 숫자가 하나도 포함되지 않았을 때도 0이 딸려 나오는 코드 상의 오류가 있음을 알게 되었다!
  • print(''.join(result)) 를 통해 리스트를 문자열로 변환해서 출력할 수 있구나..! 선녀같다✨
profile
코뉴의 도딩기록

0개의 댓글

관련 채용 정보