-
백준 9012번 어떻게 풀었나. 재정의, 추상화, 계획, 검증하기백준 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")
'백준' 카테고리의 다른 글
백준 2292번 어떻게 풀었나 (0) 2023.01.13 백준 1158번 어떻게 풀었나. (0) 2023.01.12 백준 10816번 어떻게 풀었나. (0) 2023.01.10 백준 11650번 어떻게 풀었나. lambda 사용 (0) 2023.01.09 백준 1181번 어떻게 풀었나. join(), lambda, sort(), set() 설명 (0) 2023.01.08 - 푼 방법