🔅코딩테스트 공부🔅/❗프로그래머스(Lv.1)
[프로그래머스] Level1 문자열 나누기(python)
윤무무
2023. 2. 13. 03:40
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. 메모
나 문자열 문제 너무 약한 거 같다 ㅠㅠ
문자열만 나오면 세상에서 제일 오래걸림,,,,,,,,,,,,,,,,,,,,,,,