짝지어 제거하기 - Python

2023. 10. 15. 18:46공부/📝 프로그래머스

1. 풀이 코드

def solution(s):
    stack = [' ']
    for right in s:
        left = stack.pop()
        if left == right:
            pass
        else:
            stack.append(left)
            stack.append(right)
    return int(len(stack) == 1)


# Test Cases
print(solution("baabaa"))
print(solution("cdcd"))

  stack으로 풀었습니다.

더보기

1) 틀린 코드

def solution(s):
    temp = ""
    while temp != s:
        temp = s
        s = s.replace("aa", "")
        s = s.replace("bb", "")
        s = s.replace("cc", "")
        s = s.replace("dd", "")
        s = s.replace("ee", "")
        s = s.replace("ff", "")
        s = s.replace("gg", "")
        s = s.replace("hh", "")
        s = s.replace("ii", "")
        s = s.replace("jj", "")
        s = s.replace("kk", "")
        s = s.replace("ll", "")
        s = s.replace("mm", "")
        s = s.replace("nn", "")
        s = s.replace("oo", "")
        s = s.replace("pp", "")
        s = s.replace("qq", "")
        s = s.replace("rr", "")
        s = s.replace("ss", "")
        s = s.replace("tt", "")
        s = s.replace("uu", "")
        s = s.replace("vv", "")
        s = s.replace("ww", "")
        s = s.replace("xx", "")
        s = s.replace("yy", "")
        s = s.replace("zz", "")
    return int(len(s) == 0)


# Test Cases
print(solution("baabaa"))
print(solution("cdcd"))

  너무 날로 먹으려고 했는지 시간 초과가 뜨면서 안 되더라구요. 그래서 접근 방법을 바꿨습니다.

 

2. 신기한 코드

# 문제가 개편되었습니다. 이로 인해 함수 구성이나 테스트케이스가 변경되어, 과거의 코드는 동작하지 않을 수 있습니다.
# 새로운 함수 구성을 적용하려면 [코드 초기화] 버튼을 누르세요. 단, [코드 초기화] 버튼을 누르면 작성 중인 코드는 사라집니다.
class ALWAYS_CORRECT(object):
    def __eq__(self,other):
        return True

def solution(a):
    answer = ALWAYS_CORRECT()
    return answer;

  이게 뭐지 생각을 했었습니다.

  댓글 덕분에 쉽게 이해하고 갑니다. SQL 삽입 공격과 비슷한 맥락이네요 ㅋㅋ 신기해서 정답이 되는지 확인해봤는데 지금은 되지 않습니다.

실패 화면


 

프로그래머스

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

programmers.co.kr

 

'공부 > 📝 프로그래머스' 카테고리의 다른 글

영어 끝말잇기 - Python  (0) 2023.10.16
숫자 문자열과 영단어 - Python  (0) 2023.10.16
시저 암호 - Python  (0) 2023.10.15
최소직사각형 - Python  (0) 2023.10.15
피보나치 수 - Python  (0) 2023.10.15