본문 바로가기

알고리즘

프로그래머스)문자열 나누기

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

 

프로그래머스

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

programmers.co.kr

 

이 문제는 구현문제로 보인다.

풀이는 매우 간단했고, 아이디어 또한 금방 떠올랐는데 문제가 있었다.

 

처음 제출한 코드를 보자.

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