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

일단 해볼게·2024년 1월 10일
0

프로그래머스

목록 보기
86/106

https://school.programmers.co.kr/learn/courses/30/lessons/140108

def solution(s):
    x = s[0]
    x_count = 0
    un_x_count = 0
    answer = 0
    
    for i in range(len(s)):
        if x_count == un_x_count: # count가 같아지는 시점에 x, un_x count를 0으로 초기화하고 s[i]를 count해야한다.
            x = s[i] # 분리한 문자열의 첫 글자가 x
            answer += 1
            x_count = 0
            un_x_count = 0
            
        if s[i] == x:
            x_count += 1
        elif s[i] != x:
            un_x_count += 1
        
    return answer

count가 같아지는 시점에 x, un_x count를 0으로 초기화하고 s[i]를 count하는게 핵심

다른 사람 풀이 (deque)

from collections import deque

def solution(s):

    ans = 0

    q = deque(s)    
    while q:
        a, b = 1, 0
        x = q.popleft()    

        while q:
            n = q.popleft()
            if n == x:
                a += 1
            else:
                b += 1

            if a == b:
                ans += 1
                break
    if a != b:
        ans += 1

    return ans
profile
시도하고 More Do하는 백엔드 개발자입니다.

0개의 댓글