본문 바로가기

TOP2

백준 3986/c++ )) 좋은 단어 - 스택 사용 개선답 이전 풀이는 수열의 규칙을 찾아서 풀려고 하다가 반례가 나와서 실패했다 스택을 통해서 테트리스처럼 새 단어와 stack 맨 위의 단어가 같으면 top을 pop 해서 없애주고 top과 새 단어가 다르면 stack 에 push 하여 쌓는 과정을 통해서 쉽게 코드를 짤 수 있었다 느낀점 : 문제에 맞는 최적의 자료구조를 이용하여 로직을 짜야 시간낭비도 적고, 정확도도 높은 코드를 작성가능하다 #include using namespace std; int n; string s; int main(){ int cnt=0; // 여기에 스택 선언 시, 아래 for문에서 돌때마다 스택안 값들이 남아있어서 에러가 난다 cin >> n; for(int i=0; i> s; // 한번 돌때마다 새로 stk 를 선언, 새 스택을.. 2022. 6. 16.
stack, queue 사용 시 size()를 꼭 써줘야한다 stack 이 비었을 시 top, bottom은 -1이고, pop의 경우는 사용을 못하므로 항상 stack을 사용할때에는 스택이름.size() 를 통해서 스택의 크기를 확인 후 참조하도록 한다 따라서, 조건문 등에서 stack의 사이즈를 모르는데 bottom, top이나 pop 등을 사용하면 안된다 꼭 다음과 같이 사이즈를 적어서 사용하자 if( 스택이름.size() && 조건1) // 스택의 사이즈가 0이하면 false이므로 스택이 비지 않았을떄만 구현하게 한다 같은 원리로 queue 도 사용 시 사이즈를 체크하고 사용해야만 한다 2022. 6. 16.