programmers.co.kr/learn/courses/30/lessons/12973
코딩테스트 연습 - 짝지어 제거하기
짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙
programmers.co.kr
level2
1.
def solution(s):
answer = 0
for _ in range(len(s)):
if len(s) > 0:
for i in range(len(s)-1):
count = 0
for j in range(i+1,len(s)):
if s[i] == s[j]:
count += 1
if(len(s) == 2):
s = '0'
return 1
elif count > 0 and s[i] != s[j]:
s = s[:i] + s[j:]
break
else:
break
if count > 0:
break
else :
break
if s == '0':
return 1
else :
return 0
return answer
s = 'baabaa'
print(solution(s))
채점 결과
정확성: 25.4
효율성: 0.0
합계: 25.4 / 100.0
시간초과때문에 확인이 안됌.. 알고보니 문제를 잘못읽었다. 짝지은 2개를 못보고 짝짓는 수가 2개 이상이라고 생각하고풀었다...뭐 문제가 그랬어도 시간초과땜에 틀릴것같지만.ㅎ
2.
def solution(s):
result = []
for i in s:
if len(result) == 0:
result.append(i)
elif i in result:
result.remove(i)
else:
result.append(i)
if len(result) == 0:
return 1
else :
return 0
return 0
테케 8번빼고 효율성까지 다 맞는다.
근데 왜 8번은 틀리는거지...대체 와ㅣㅇ...
3.
def solution(s):
result = []
for i in s:
if len(result) == 0:
result.append(i)
elif result[-1] == i:
result.pop()
else:
result.append(i)
if len(result) == 0:
return 1
else :
return 0
return 0
스택으로 풀었더니 맞다. 하ㅇ ㅏ...
'2 > 프로그래머스' 카테고리의 다른 글
프로그래머스 연습 문제 - 가장 큰 정사각형 찾기 (0) | 2020.10.29 |
---|---|
프로그래머스 연습 문제 - 베스트앨범 (0) | 2020.10.28 |
프로그래머스 연습 문제 - 같은 숫자는 싫어 (0) | 2020.10.26 |
프로그래머스 연습 문제 - 예상 대진표 (0) | 2020.10.25 |
프로그래머스 연습 문제 - 방금그곡 (0) | 2020.10.21 |