DecordRay

[프로그래머스] Level1 : 문자열 나누기[Python] 본문

알고리즘/프로그래머스

[프로그래머스] Level1 : 문자열 나누기[Python]

DecordRay 2023. 2. 3. 15:23
728x90
반응형

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

 

프로그래머스

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

programmers.co.kr

 

풀이 :

1. 변수 생성

  • x_equal : x와 같은 글자인지를 카운트할 변수
  • x_diff : x와 다른 글자인지를 카운트할 변수
  • x : 매 반복 시점마다 s[0](첫번째 문자)을 담을 변수
  • chk : s = 'a' 와 같이 s에 홀수 개수의 문자가 남았을 경우 whlie문 탈출하기 위한 변수(입출력 예# 2 참고)

2. while문의 매 반복 시점마다 s의 길이만큼 내부반복문(for 문)을 통해 x_equal과 x_diff 카운트

3. x_equal == x_diff 일 경우 s = s[x_equal*2 : ]

4. 내부반복문을 돌고나서 chk == False 일 경우 answer + 1 해준 후 while문 종료

 

코드 :

def solution(s):
    answer = 0
    while s:
        x_equal = 0
        x_diff = 0
        chk = False
        x = s[0]
        for i in range(len(s)):
            if x == s[i]:
                x_equal += 1
            else:
                x_diff += 1
            if x_equal == x_diff:
                s = s[x_equal*2:]
                answer += 1
                chk = True
                break
        if chk == False:
            answer += 1
            break
    return answer
728x90
반응형
Comments