코딩테스트 연습

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

콩콩(๓° ˘ °๓)♡ 2023. 2. 23. 10:20
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

text = list(input())
x = text[0]
cnt_x=0
cnt_diff=0
result=0
i = 0

while True:   
    try:
        if x == text[i]: 
            cnt_x += 1
        else:
            cnt_diff +=1
    
        if cnt_x == cnt_diff:
            print(''.join(text[0:i+1]), end=' - ')
            text[0:i+1]='' #해당 위치까지의 텍스트 삭제
            result += 1

            cnt_x = 0
            cnt_diff = 0
            i=0
            x=text[0]
        else:
            i += 1
        if len(text)==0: #분리할 텍스트가 남아있지 않으면 중단
            break
    except:
        break #출력은 끝났으나 텍스트가 남아있을 경우 오류 발생
print(result)​
def solution(s):
    res = 0
    while s:
        first = s[0]
        first_cnt = 1
        another_cnt = 0
        for i in range(1, len(s)):
            if s[i] == first:
                first_cnt += 1
            else:
                another_cnt += 1
            if first_cnt == another_cnt:
                break
        res += 1
        s = s[first_cnt+another_cnt:]
    return res
def sol(s):
    result = 0 # 분해한 문자열의 개수
    check = '' # 빈 문자열
    for i in s: # s 한글자씩 i로 만듬
        check += i # 빈 문자열에 i 넣음
        if len(re.findall(check[0], check)) == len(re.findall(f'[^{check[0]}]', check)): # 첫번째 글자의 개수랑 그 외의 글자의 개수가 같으면
            check = '' # 문자열 초기화
            result += 1 # 결과 1 더해줌
    return result + bool(check) # 문자열 남아있으면 check에 1 더함