반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12909
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 (1차 시도)
정확성: 69.5
효율성: 0.0
def solution(s):
while True:
s = s.replace("()","") #빈칸으로 replace하기
if s == "":
return True
elif s.find("()") == -1: #find했는데 없으면 -1을 반환한다. 있으면 첫번째로 발견한 곳의 index를 반환함
return False
return true
풀이 (2차 시도)
자꾸 효율성 테스트 1에서 떨어진다.....
replace()
문자열(string)에서 특정 문자(character)을 제거하고 싶을 때는 replace() 함수 활용하기.
find()
문자열(string)에서 특정 문자(character)을 찾고싶을 때, 첫번째로 발견한 index를 반환한다.
count()
문자열(string)에서 특정 문자(character)의 갯수를 반환한다.
정확성: 69.5
효율성: 15.2
def solution(s):
if s.count(')') != s.count('('): #count 함수는 문자열에서 charecter이 몇개 있는지 반환해준다.
return False
else:
if '()' in s:
while True:
s = s.replace("()","") #replace함수는 문자열에서 charcter를 찾아서 replace해준다.
if s == "":
return True
if s.find("()") == -1: #find함수는 찾았했는데 없으면 -1을 반환한다. 있으면 첫번째로 발견한 곳의 index를 반환함
return False
else:
return False
풀이 (3차 시도)
list를 활용해서 풀기.
def solution(s):
stack = []
for i in s:
if i == '(': # '('는 stack에 추가
stack.append(i)
else: # i == ')'인 경우
if stack == []: # 비어 있으면 시작하면 False 반환
return False
else:
stack.pop()
return stack == []
반응형
'코딩 테스트 > Programmers' 카테고리의 다른 글
[Python] [Level 2] 피보나치 수 구현 (0) | 2022.10.04 |
---|---|
[Python] [Level 2] 숫자의 표현 (약수 구하기, divmod로 나머지 활용하기) (0) | 2022.10.04 |
[Python] [Level 2] 최솟값 만들기 (0) | 2022.09.26 |
[Python] [Level 2] JadenCase 문자열 만들기 (0) | 2022.09.25 |
[Python] [Level 2] 최댓값과 최솟값 (0) | 2022.09.23 |