728x90
문제
코드 설계 유의사항
1. 첫 글자를 담고, 이를 세는 변수 추가, 다음 글자가 같다면 새로 담지 않고 세는 변수를 1 증가
2. 첫 글자와 다른 글자가 나온 횟수 변수 추가, 첫 글자 count 변수과 값이 같아지면 첫 번째 문자 값을 옮긴 후 분리하기
3. 분리 할 때마다 이를 세는 변수를 증가시키고, 분해하지 못하면 종료하기
코드
# 풀이 추가
def solution(s):
# count 할 배열 미리 생성, 처음에는 첫 번째 글자 저장
# 두 번째와 세 번째에는 각각 s[0]과 동일하고, 다른 문자를 세는 자리이다
answer = 0
count = [s[0], 0, 0]
# count에 저장된 변수들의 조건에 맞게 작성하고 문제에 나온 조건에 따라 마지막에 한 번 더 분리한다
for i in range(len(s)-1):
if count[0] == s[i]:
count[1] += 1
else:
count[2] += 1
if count[1] == count[2]:
answer += 1
count = [s[i+1], 0, 0]
answer += 1
return answer
문제를 풀다보면 굳이 문자를 나눠야 하나 싶었다
count한 수들이 같아지면 분리하는 것 대신 확인해야 할 첫 번째 index를 바로 다음으로 보내버리면 되는 것이었다
문제에 적힌 마지막에 두 수가 달라도 분리하고 종료하라는 조건이 들어가서 마지막에 +1을 더해주었다
그렇게 해서 전체반복없이 코드 작성이 완료되었다
출력
수많은 테스트 케이스에도 끄덕없는 코드가 완성되었다 !
End
728x90
'Coding Test > Programmers_Python' 카테고리의 다른 글
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT - 신규 아이디 추천 (0) | 2023.02.12 |
---|---|
[프로그래머스] 2019 카카오 개발자 겨울 인턴십 - 크레인 인형뽑기 게임 (0) | 2023.02.12 |
[프로그래머스] 2020 카카오 인턴십 - 키패드 누르기 (0) | 2023.02.12 |
[Python] 오늘의 연습 문제 풀기 5편 (0) | 2022.12.01 |
[Python] 프로그래머스 코딩테스트 입문 Day1 (0) | 2022.12.01 |