[파이썬] ⭐cnt를 사용하는 알고리즘 풀이법

폼폼(YUNA AN)·2024년 8월 27일

사소한 발견

목록 보기
9/33
post-thumbnail

문제

string이 주어졌을 때, 연속된 3개의 문자가 오지 않도록 문자의 일부를 제거하라. 제거된 결과물을 string값으로 리턴하라.

solution

class Solution:
    def makeFancyString(self, s: str) -> str:
        answer = ""
        prev = ""
        cnt = 0
        for c in s:
            if c == prev:
                cnt += 1
            else:
                cnt = 1
            if cnt < 3:
                answer += c
            prev = c
        return answer

해석

  • 만약 현재 문자 'c'가 이전의 문자와 같다면 cnt += 1 해줌으로써 cnt 스택을 누적한다.
  • cnt가 3미만인 경우에만 현재 문자 'c'를 answer에 직접 더해준다.(cnt가 3 이상인 경우에는 아무 일도 일어나지 않음)
  • 마지막 순서에서 prev=c로 현재의 c를 다음 턴의 prev로 할당해준다.
  • 빼먹지 말아야 할 부분 : 맨 처음에 prev는 for문 밖에서 prev=""로 지정해준다.
profile
광고 도메인과 콘텐츠 기획의 전문성을 갖춘 데이터 분석가입니다.

0개의 댓글