2023. 5. 3. 00:41, 알고리즘/BOJ
문제를 푸는데 deque를 활용해서 push_front()를 해서 원소들을 넣어두고, 그 원소들을 개별적으로 접근해서
cout 으로 출력하는 상황에서, stack으로도 front로 넣는다와 같은 개념이니까 stack을 사용하면 되지 않을가 싶어서 사용했는데,
이런식으로 문제가 발생했다
과거에 stack을 배울때 stack과 queue는 내부에 넣어준 개별 원소의 접근에 원칙적으로(stl stack, stl queue) 할수 없다는것이 떠올랐다.
직접 구현한 스택과 큐는 배열을 통해서 구현해서 그런식으로 가능은 하지만, stl stack과 stl queue를 사용하면
그렇게 할수가 없다.
그래서 deque를 사용해서 (재미있게도 stl deque는 개별 원소에 접근할 수 있다) push_front로 넣어서 다시 front에 가까운 순으로 접근하면서 원소를 출력하는데 사용하였다.
만약 이게 떠오르지 않는다면, vector를 만들어서 거기에 넣고, reverse 함수를 통해서 순서를 완전히 바꿔준뒤에 그뒤에 출력하면 이 문제에서 원하는 결과를 얻을 수 있었다.
왜 deque를 사용하는지 완전하게 이해하고 사용하도록 하자.
'알고리즘 > BOJ' 카테고리의 다른 글
c++ boj 1890번 문제를 통해서 알게된 간략하게 표현한 변수의 중요성. (0) | 2023.05.04 |
---|---|
c++ boj 15988번 문제를 통해 보는, "1,000,000,009로 나눈 나머지를 출력한다." 등의 형태를 요구하는 문제에 대해서. (0) | 2023.05.03 |
dp 문제에서 pre[] 배열을 선언해서 뒤로 추적해 나갈때 deque의 활용 (0) | 2023.05.02 |
c++ 2차원 배열에서 *max_element를 사용하는 방법 (0) | 2023.05.02 |
파이썬 코드를 볼때 알게된 c++과 파이썬의 복사의 깊이 차이. (0) | 2023.05.01 |
Comments, Trackbacks