문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/140108
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
def solution(s):
answer = 0
while s:
target = s[0]
target_cnt = 0
other_cnt = 0
for i in range(len(s)):
if s[i] == target:
target_cnt += 1
else:
other_cnt += 1
if target_cnt == other_cnt:
s = s[i+1:]
answer += 1
break
else:
answer += 1
break
return answer
풀이
- 반복중 target을 문자열의 첫자리인 s[0]으로 설정한다.
- 탐색을 하면서 s[i]가 target과 같으면 target_cnt + 1,다를 경우 other_cnt +1을 한다.
- 만약 target_cnt, other_cnt가 같으면 문자열을 나누어야 할 때이므로, s에 현재까지 검사한 인덱스 + 1부터 끝까지로 슬라이싱을 하고, 나눈 문자열이 있으므로 answer + 1을 하고 break.
- 정상적으로 s에 대한 for문이 끝나면 더이상 문자열을 나눌 수 없는 것이므로, answer + 1 하고 break
'👨🏻💻알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv1. 같은 숫자는 싫어 (0) | 2023.02.19 |
---|---|
[프로그래머스] Lv1. 폰켓몬 (0) | 2023.02.13 |
[프로그래머스] Lv1. 옹알이(2) (0) | 2023.02.12 |
[프로그래머스] Lv1. 기사단원의 무기 (0) | 2023.02.11 |
[프로그래머스] Lv1. 숫자 짝꿍 (0) | 2023.02.11 |