[프로그래머스] 문자열 나누기 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
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 최대공약수와 최소공배수 - Lv.1 (0) | 2023.08.17 |
---|---|
[프로그래머스] 행렬의 덧셈 - Lv.1 (20) | 2023.08.17 |
[프로그래머스] 성격 유형 검사하기 - Lv.1 (15) | 2023.08.16 |
[프로그래머스] 가장 가까운 같은 글자 - Lv.1 (15) | 2023.08.16 |
[프로그래머스] 수 조작하기 1 - Lv.0 (14) | 2023.08.16 |