문제
https://school.programmers.co.kr/learn/courses/30/lessons/12909
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 리스트로 스택을 만들어서 사용
스택: 나중에 들어온 것이 먼저 나간다
문자가 '('면 리스트에 추가
문자가 ')'면 리스트의 맨 뒤 삭제
반복문 돌면서
현재 문자가 ')'인데 리스트의 길이가 0이면 -> ')'가 '(' 없이 사용되는 것이므로 False 리턴
반복문 다 돌았을 때
리스트의 길이가 0이라면 -> 올바른 괄호 사용이므로 True 리턴
리스트의 길이가 1이상이라면 -> '(' 가 남아있는 것이므로 False 리턴
def solution(s):
return False
<참고>
del, pop() 모두 인덱스를 가지고 삭제
del 값을 반환하지 않고 삭제, 슬라이싱으로 삭제 가능
pop() 값을 반환하고 삭제, 슬라이싱으로 삭제 불가능
https://brownbears.tistory.com/452
[Python] 리스트 slice, pop, del 성능 비교 및 사용방법
slice, pop, del 사용방법remove()remove()는 지우고자 하는 인덱스가 아닌, 값을 입력하는 방식입니다. 만약 지우고자 하는 값이 리스트 내에 2개 이상이 있다면 순서상 가장 앞에 있는 값을 지우게 됩니
brownbears.tistory.com
2. 리스트 사용 안하고
cnt의 값에 따라 True, False 구분
문자가 '('면 -> cnt+1
문자가 ')'면 -> cnt-1
반복문 돌면서
cnt가 0보다 작다면 -> ')'가 '(' 없이 사용되는 것이므로 False 리턴
반복문 다 돌았을 때
cnt가 0이라면 -> 올바른 괄호 사용이므로 True 리턴
cnt가 1보다 크면 -> '(' 가 남아있는 것이므로 False 리턴
def solution(s):
return False
확실히 리스트 사용 안하니까 빨리 된다
'코딩테스트 문제' 카테고리의 다른 글
[프로그래머스/Python] 신고 결과 받기 (0) | 2024.01.11 |
---|---|
[프로그래머스/Python] 둘만의 암호 (0) | 2024.01.10 |
[프로그래머스/Python] 문자열 밀기 (0) | 2024.01.05 |
[프로그래머스/Python] k의 개수 (1) | 2024.01.05 |
[프로그래머스/Python] 369 게임 (0) | 2024.01.05 |