728x90
문제 : https://leetcode.com/problems/reformat-the-string/description/
난이도 : Easy
풀이
class Solution:
def reformat(self, s: str) -> str:
alpha = [c for c in s if c.isalpha()] # 글자
digits = [c for c in s if c.isdigit()] # 숫자
if abs(len(alpha) - len(digits)) > 1:
return ""
reformatted = []
while alpha and digits:
reformatted += [alpha.pop(), digits.pop()]
return ''.join(digits + reformatted + alpha)
먼저, 글자와 숫자를 분리해준다.
서로의 갯수가 2이상 차이나면 조건 불충분으로 빈값 리턴한다.
하나의 문자 배열이 빌 때까지 알파벳부터 숫자 순으로 하나씩 꺼내서 새로운 배열에 푸시한다.
갯수가 하나 더 많은 문자 배열이 있을 수 있으므로, 숫자 + 정렬문자 (이미 알파벳->숫자 순이므로)+ 알파벳 순으로 붙여서 리턴하면 된다.
728x90