짝지어 제거하기 - 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 삽입 공격과 비슷한 맥락이네요 ㅋㅋ 신기해서 정답이 되는지 확인해봤는데 지금은 되지 않습니다.
'공부 > 📝 프로그래머스' 카테고리의 다른 글
영어 끝말잇기 - 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 |