백준
백준 9012번 어떻게 풀었나. 재정의, 추상화, 계획, 검증하기
kimbro6
2023. 1. 11. 00:01
- 푼 방법
- 처음에 알고리즘은 그럴듯하게 생각했음.
- 처음 생각한 알고리즘을 바로 코드로 구현함
- 그런데 그 알고리즘이 시간복잡도는 전혀 생각하지 않은 것임
- 그래서 코드 짜는데, 쓰레기를 생산하고있다는 생각이 듬 (계속해서 생각하지 못했던 반복문과 조건문이 추가된다)
- ____________________________________________________________________________________
- 구글링을 해 보고 내가 왜 이런 코드를 생각하지 못했나 생각해봄
- 일단,, 복붙해서 맞게 함..
- 좋았던점
- 어떻게 해서든 직접 알고리즘을 만들어보려고 했다...ㅠ
- 고치면 좋을 부분
- 알고리즘을 생각할때 시간복잡도를 생각할 수 있었으면 좋겠다.
- 계획이 완벽하게 되지 않았는데 무작정 코드를 작성하기 시작함.
- 문제를 잘 재정의 해야겠다. *이거때문에 문제를 어떻게 풀지 갈라짐
- 새롭게 안 부분
- __________
for ~~~
else:
~~~
__________
에서 else문은 for루프가 정상적으로 완료된 경우에만 실행된다.
for문 안에서 break걸리면 실행 되지 않는다.
- __________
- 더 알고 싶은 부분
- 재정의, 추상화, 계획, 검증 잘 하는법.
- 문제를푸는 알고리즘을 생각해 내는 알고리즘.
- 다음 포스팅에 합니다..
코드
import sys
N = int(input())
for i in range(N):
stack =[]
A = list(sys.stdin.readline().rstrip())
for j in A:
if j == "(":
stack.append(j)
elif j == ")":
if stack:
stack.pop()
else:
print("NO")
break
else:
if not stack:
print("YES")
else:
print("NO")