2023.11.30 - Step 16 후기. (직접 구현하기 vs 있는 함수 쓰기) = 자료형을 아는 것은 중요하다.
(1) Baekjoon 의 기본적인 자료 구조 Stack (LIFO), Queue (FIFO), Deque (Double - Ended Queue) 에 대해서 이해할 수 있었음.
(2) Python의 index가 0 부터 시작하는 것 vs C 언어의 index가 1부터 시작하는 것에서
Python이 나머지 연산으로 원형 배열을 쉽게 다룰 수 있다는 것을 체감함.
(3) 다른 사람들의 해답을 보니, Deque (덱) 의 rotate를 사용하면, 더 짧게 풀 수 있었음. 나는 deque.rotate(num)을 직접 구현하려 시도했던 것.
어떤 기능을 직접 구현하려 한 것도 좋은 것이지만, 내가 어떤 자료형과 명령어를 쓸 수 있는지 아는 것도 중요하다고 생각됨.
해당 문제는, 시간과 시도에 따른 경험이 해결해주는 문제라고 생각됨.
2023.11.30 - Python의 index는 0 .... N-1 으로 나머지 연산을 통해서 범위를 벗어나는 index를 조정하여 쉽게 원형 배열을 다룰 수 있음. Baekjoon은 import numpy가 되지 않는 것에 유의. index 출력을 C처럼 1부터 하기 위해, index + 1 을 함에 유의.
2023.11.29 - baekjoon 24511, questack을 문제 설명을 따라서 그대로 구현하면 시간 초과, stack은 의미가 없는 문제.
step16의 남은 한문제, baekjoon 2346 풍선 터뜨리기의 index에서 헤매는 중.
2023.11.29 - baekjoon 24511, 문제 그대로 구현 = 시간초과
2023.11.29 - baekjoon 24511, (1) stack을 제외하고 여러 queue들을 하나의 queue로 연결 후에 (2) pop, append 실행.
2023.11.28 - FIFO 구조인 Queue 를 구현하는 과제. Python 의 deque를 import 하여 사용. list 의 pop(0) 로 구현시 시간초과. Python class 로 직접 Queue 를 구현하는 경우도 있음. 시간초과를 없애기 위해 import sys까지 활용해야 했음.
2023.11.27 - step16 풀이 중 후기, LIFO를 따르는 stack 을 python의 list를 활용하여 해결 중. 문제가 맞아도, python3, pypy3, import sys에서도 답이 나오는지 확인해보았는데, 이 경우 총 4번의 정답 제출이 1문제의 정답으로 채점되어 내 코드 정답률이 58%에서 현재 50% 미만으로 떨어진 것을 확인함. 정답률에 딱히 신경쓰지 않고, 제대로 배워나가는 것을 목표로 계속 진행할 계획. 50% 미만이 된 것이 아쉽긴 함 =).
2023.11.27- Baekjoon 4949, 반례가 있는 코드, stack을 두개 활용함.
'[(()])' 의 올바른 출력은 'no' 여야 하는데 stack을 '(' 와 '[' 에 대해서 따로 구성해주면서 'yes' 로 잘못 출력.
2023.11.27- Baekjoon 4949, 반례를 해결한 코드, stack을 통합하여 한개로 구성함.
2023.11.26 - Baekjoon 9012: 괄호, 굳이 스택을 사용하지 않고도 풀어낼 수 있었음.
2023.11.26 - Baekjoon 9012 without stack, 31120KB, 48ms
2023.11.26 - Baekjoon 9012 with stack, 31120KB, 44ms
2023.11.25 - For Python, List [ ] is a stack. For C, #include<stack>