본문 바로가기
🔅코딩테스트 공부🔅/❗프로그래머스(Lv.1)

[프로그래머스] Level1 문자열 나누기(python)

by 윤무무 2023. 2. 13.

https://school.programmers.co.kr/learn/courses/30/lessons/140108

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 내가 작성한 코드
def solution(s):
    s = list(s)
    result = 0
    
    while len(s) >= 1:
        cnt0 = 0 #같을 때
        cnt1 = 0 #다를 때
        for i in range(0, len(s)):
            start = s[0]      
            if s[i] == start:
                cnt0 +=1
            else:
                cnt1 +=1
  
            if cnt0 == cnt1:
                result += 1
                del s[:i+1]
                cnt0 = 0
                cnt1 = 0
                break
          
            elif cnt0 != cnt1 and len(set(s)) == 1:
                result += 1
                del s[i:]
                break
                
    return result

슬라이싱과  del 함수를 이용해서 풀었는데 5문제 정도에서 시간초과가 났다.

 

그래서 구글링을 했는데~~~~내가 개~~~~복잡하게 푼거네 시간초과가 뜰 수 밖에~~😮

 

+ queue 이용해서 풀 수도 있음

 

2. 수정코드
def solution(s):
   answer = 0
   cnt1=0
   cnt2=0
   for i in s:
       if cnt1==cnt2:
           answer+=1
           k=i
       if k==i:
           cnt1+=1
       else:
           cnt2+=1
       
   return answer

 

 

3. 메모

나 문자열 문제 너무 약한 거 같다 ㅠㅠ

 

문자열만 나오면 세상에서 제일 오래걸림,,,,,,,,,,,,,,,,,,,,,,,

댓글