728x90
def solution(s):
if len(s) % 2: #홀수 경우는 불가능
return 0
list_s = list(s)
stack = []
for i in range(len(s)):
tmp = list_s.pop()
if stack == []:
stack.append(tmp)
elif stack[-1] == tmp:
stack.pop()
elif stack[-1] != tmp:
stack.append(tmp)
if stack != []:
return 0
return 1
위 코드는 타인의 코드를 보고 생각해보며 내 방식대로 적은 코드이다.
스택의 개념에 대해서는 알지만 어떻게 사용해야할지 잘 몰랐던 것 같다.
스택이 비었을때 추가하고, 스택에 값이 있을때 비교하는것...
앞으로는 제발 잊지 않았으면 좋겠다.
아래는 처음 구현했던 코드이다. 효율성테스트 실패해서 스택을 생각했다.
def solution(s):
s += '_'
answer = 0
ind = 1
while s != '' :
if s[ind-1] == s[ind]:
s = s[:ind-1]+s[ind+1:]
ind -= 1
else:
ind += 1
if ind == len(s):
break
else:
answer = 1
return answer
'''
정확성 테스트
테스트 1 〉 통과 (0.01ms, 10.2MB)
테스트 2 〉 통과 (89.14ms, 10.3MB)
테스트 3 〉 통과 (157.49ms, 10.5MB)
테스트 4 〉 통과 (154.87ms, 10.6MB)
테스트 5 〉 통과 (153.97ms, 10.4MB)
테스트 6 〉 통과 (155.23ms, 10.5MB)
테스트 7 〉 통과 (155.63ms, 10.3MB)
테스트 8 〉 통과 (147.66ms, 10.4MB)
테스트 9 〉 통과 (0.00ms, 10.2MB)
테스트 10 〉 통과 (0.04ms, 10.1MB)
테스트 11 〉 통과 (0.01ms, 10.2MB)
테스트 12 〉 통과 (0.01ms, 10.2MB)
테스트 13 〉 통과 (0.01ms, 10.2MB)
효율성 테스트
테스트 1 〉 실패 (시간 초과)
테스트 2 〉 실패 (시간 초과)
테스트 3 〉 실패 (시간 초과)
테스트 4 〉 실패 (시간 초과)
테스트 5 〉 실패 (시간 초과)
테스트 6 〉 실패 (시간 초과)
테스트 7 〉 실패 (시간 초과)
테스트 8 〉 실패 (시간 초과)
'''
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 1065 한수 (0) | 2021.01.30 |
---|---|
[백준] 1316. 그룹 단어 체커 (0) | 2021.01.29 |
[백준] 1003 피보나치 함수 (0) | 2021.01.28 |
[백준] 10250 ACM 호텔 (0) | 2021.01.28 |
[프로그래머스] LEVEL2 스킬트리, python3, Summer/Winter Coding(~2018) (2) | 2021.01.28 |