키워드는 문제의 해시태그에 나온 것과 같이 스택과 큐로 분류되어 있습니다.
이번 문제는 스택으로 접근해서 풀어보겠습니다.
스택과 큐는 알고리즘에서 자주 쓰이는만큼 이 부분에 대해서 잘 모르시는 분이라면
시간을 조금만 투자하시면 금방 익히실 수 있을 거라 생각합니다!
스택의 기본 개념은 (Last-In-First-Out)입니다. 후입선출이라고도 하는데
예시로 들자면 양쪽에 구멍이 뚫린 원기둥의 한 쪽을 막고
남은 한 구멍에 물건들을 차례대로 넣으면
꺼낼 때도 가장 마지막에 넣은 것부터 꺼내야합니다.
그래서 우리는 이것을 가장 마지막에 넣은 것을 가장 먼저 꺼낸다 하여 후입선출이라고 표현을 합니다.
반대로 큐는 (First-In-First-Out)으로 선입선출이라고 표현을 하며
스택과는 다르게 양쪽에 구멍이 뚫린 원기둥에
차례대로 물건들을 넣으면 넣은 구멍과는 다른
반대쪽 구멍에서 물건들을 꺼낼 수 있기 때문에
큐는 가장 먼저 넣은 것을 가장 먼저 꺼낸다하여 선입선출이라고 표현을 합니다.
(※ 큐는 스택의 원기둥과 다르게 한 쪽 구멍을 막지 않습니다. ※)
문제 해결에 쓰이는 코드는 크게 두 가지 정도라고 보시면 됩니다.
입력받은 정수 배열 중에서 중복되는 원소들은 하나씩만 stack에 추가해주는 것과
스택에 추가된 원소들 중에서 가장 먼저 넣은 원소들부터 차례대로 꺼내와서 출력해주는 부분입니다.
스택과 큐의 기본적인 특징과 원소 추가와 원소를 꺼내오는 코드만 알면 풀 수 있는 기본적인 예제였던 것 같습니다 !!
'알고리즘' 카테고리의 다른 글
LEETCODE, Minimum Number (0) | 2024.07.10 |
---|---|
LEETCODE, Valid Parenthesis (0) | 2024.07.10 |
프로그래머스, 완주하지 못한 선수 (0) | 2024.07.10 |
프로그래머스, 폰켓몬 (0) | 2024.07.10 |
LEETCODE, Count Pairs Whose Sum is Less than Target (0) | 2024.07.10 |