728x90
🤷♂️문제설명
문자열 s가 입력되었을 때 다음 규칙을 따라서 이 문자열을 여러 문자열로 분해하려고 합니다.
- 먼저 첫 글자를 읽습니다. 이 글자를 x라고 합시다.
- 이제 이 문자열을 왼쪽에서 오른쪽으로 읽어나가면서, x와 x가 아닌 다른 글자들이 나온 횟수를 각각 셉니다. 처음으로 두 횟수가 같아지는 순간 멈추고, 지금까지 읽은 문자열을 분리합니다.
- s에서 분리한 문자열을 빼고 남은 부분에 대해서 이 과정을 반복합니다. 남은 부분이 없다면 종료합니다.
- 만약 두 횟수가 다른 상태에서 더 이상 읽을 글자가 없다면, 역시 지금까지 읽은 문자열을 분리하고, 종료합니다.
문자열 s가 매개변수로 주어질 때, 위 과정과 같이 문자열들로 분해하고, 분해한 문자열의 개수를 return 하는 함수 solution을 완성하세요.
🙅♀️제한조건
- 1 ≤ s의 길이 ≤ 10,000
- s는 영어 소문자로만 이루어져 있습니다.
💁입출력 예
s | result |
"banana" | 3 |
"abracadabra" | 6 |
"aaabbaccccabba" | 3 |
입출력 예 #1
s="banana"인 경우 ba - na - na와 같이 분해됩니다.
입출력 예 #2
s="abracadabra"인 경우 ab - ra - ca - da - br - a와 같이 분해됩니다.
입출력 예 #3
s="aaabbaccccabba"인 경우 aaabbacc - ccab - ba와 같이 분해됩니다.
🙆코드
def solution(s):
count = 0
while len(s) > 0:
x = s[0]
i = 0
x_count = 0
other_count = 0
while i < len(s):
if s[i] == x:
x_count += 1
else:
other_count += 1
if x_count == other_count:
break
i += 1
count += 1
s = s[i+1:]
return count
더보기
🗨️첨언
while 반복문을 활용하면 반복할 때 변수들을 초기화할 수 있다는 점을 활용하면 된다.
그리고 메인 반복문 속에서 수행할 조건들을 넣어주면 된다.
예를 들어 첫번째 문자를 세는 조건문과,
다른 문자를 세는 조건문,
잘린 문자열을 세는 식
잘리고 남은 문자열을 다시 할당하는 식
728x90
'🐍python3 > Programmers' 카테고리의 다른 글
프로그래머스[Lv. 1]_[카카오 인턴] 키패드 누르기 (0) | 2023.06.15 |
---|---|
프로그래머스[Lv. 1]_크레인 인형뽑기 게임 (0) | 2023.06.15 |
프로그래머스[코딩테스트 고득점 Kit][해시]_완주하지 못한 선수 (0) | 2023.06.15 |
프로그래머스[코딩테스트 고득점 Kit][그리디]_체육복 (0) | 2023.06.15 |
프로그래머스[Lv. 1]_옹알이 (2) (0) | 2023.06.15 |