https://school.programmers.co.kr/learn/courses/30/lessons/140108
이 문제는 구현문제로 보인다.
풀이는 매우 간단했고, 아이디어 또한 금방 떠올랐는데 문제가 있었다.
처음 제출한 코드를 보자.
def solution(s):
answer = 0
same = 0
diff = 0
length = len(s)
idx = 0
while s:
print(s)
if s == '':
answer+=1
break
if idx >= len(s):
answer += 1
break
if s[0] == s[idx]:
same += 1
else:
diff += 1
if same > 0 and diff > 0 and same == diff:
answer+= 1
s = s[idx+1:]
idx = 0
else:
idx += 1
return answer
s를 받고 s가 ''이면 break.
idx가 len(s)를 넘겨도 break.
만을 same 과 diff가 같다면
answer += 1, s는 idx+1부터 끝까지로 갱신한다.
전혀 문제없어보이는 코드가 시간초과가 나왔다.
이 방법보다 조금 더 반복문을 덜 도는 방법을 생각해보았으나 도무지 떠오르지 않았다.
그러다가 pirnt를 지웠고 모든 테케에서 통과할 수 있게 되었다.
항상 엉뚱한 곳에서 예기치못한 오류 에러 등등이 발생하는 것 같다...
'알고리즘' 카테고리의 다른 글
백준)분해합 (0) | 2023.02.20 |
---|---|
백준)블랙잭 (0) | 2023.02.20 |
백준)영역구하기 (0) | 2023.02.18 |
프로그래머스)2개 이하로 다른 비트 (0) | 2023.02.17 |
프로그래머스)[1차] 프렌즈 4블록 (0) | 2023.02.16 |