알고리즘

[프로그래머스, 파이썬] 문자열 나누기

hminor 2024. 3. 8. 09:32

풀이

  • 뭔가 깔끔하게 풀지 못한 느낌이 없지 않아 있지만
  • 여러 개의 조건 분기를 활용하여 해결
  • 우선 시작이 되는 x의 값을 초기화 했을 때마다 카운팅과 함께 해당 값을 x에 할당하고
  • x와 다를 경우 li[1]에 카운팅 하는 형식으로 한 다음
  • li의 두 인덱스인 카운팅 값이 같다면 cnt에 카운팅하고 다시 초기화하기
  • 이후 딱 떨어지는 문자가 아닐 경우에 대한 조건처리하여 해결

 

def solution(s):
    x,cnt = "",0
    li = [0,0]
    for i in range(len(s)):
        if x == "":
            li[0] += 1
            x = s[i]
        elif x == s[i]: li[0] += 1
        elif x != s[i]: li[1] += 1
       
        if li[0] == li[1]:
            cnt += 1
            x = ""
            li = [0,0]
    if li != [0,0]: cnt += 1
    return cnt