코딩테스트

[프로그래머스] 문자열 나누기 - Lv.1

pyflu 2023. 8. 16. 14:14

[프로그래머스] 문자열 나누기 Lv.1 - [파이썬/python]

 

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

 

프로그래머스

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

programmers.co.kr


 

 


# 프로그래머스 | 문자열 나누기
def solution(s):
   
    first_alp = "" #첫 글자
   
    s_count = 0 #첫 글자와 같은 글자 수
    d_count = 0 #첫 글자와 다른 글자 수
   
    result = 0 #결과값
   
    for alp in s:
       
        # 첫 글자가 없을 땐
        # 첫 글자를 넣어주고 / s_count에 1을 넣어준다
        # 첫 글자이니 continue를 통해 아랫 문장을 실행하지 않고 다음 for문을 돌린다
        if first_alp == "":
            first_alp = alp
            s_count = 1
            continue
       
        # 첫 글자와 alp와 같은 경우 s_count에 1을 더해준다
        # 첫 글자와 alp와 다른 경우 d_count에 1을 더해준다
        if first_alp == alp:
            s_count += 1
        else:
            d_count += 1
       
        # s_count와 d_count의 수가 같아지면 전부 초기화를 하고
        # 상황으로썬 문자열이 분리된거니 / result에 1을 추가해준다.
        if s_count == d_count:
            first_alp = ""
            s_count = 0
            d_count = 0
            result += 1
   
    # for문이 끝났을 때 마지막까지 분리가 잘 되었다면 first_alp는 ""가 된다.
    # 하지만 for문이 끝났을 때 s_count와 d_count가 달라 분리가 안 된 경우도 있다.
    # 안 된 경우도 하나의 문자열이니 마지막 조건을 통해 result에 1을 더해준다
    if first_alp != "":
        result += 1
       
    return result

728x90