이번시간부터 DFS/BFS 알고리즘에 대해서 다뤄보겠습니다
DFS/BFS는 대표적인 그래프탐색 알고리즘임
탐색이란 ~(위에 첫줄 그대로 읽음)
등을
탐색 알고리즘을 사용하곤 합니다
DFS/BFS 가 될수 있는데요 이러한 DFS/BFS 는
유형임으로 국내 대기업 공채에서는
이런 DFS/BFS를
본격적으로 DFS/BFS에 대해서 알아보기 전에 반드시 알아두고 넘어가야할
먼저 스텍 자료구조인데요
스텍 자료구조는
선입후출
스택자료구조
즉 스택하고자
위쪽에
박스쌓기 예시로 기억하시면 좋습니다.
이러한 스택자료구조는 DFS/BFS
2연산으로 구성 간딴히 예시를 확인해보겠습니다 자 먼저
수 있는데요
이어서 2라는 데이터가
원소 5의 오른쪽에
데이터가 총 4개로
삭제연산이 수행되면
7이 우선적으로
되겠구요
자료형을 이용하시면 됩니다
print(stack[::-1]) 가 뭔지 아래 참고했음
https://twpower.github.io/119-python-list-slicing-examples
리스트 자료형은 팝 메서드를
스텍과 같이 사용할수 있습니다 또한 이 append와 pop함수의 시간 복잡도는
상수시간 즉 O(1)이기 때문에 스텍 자료구조를 활용하기에 적합합니다
객체의
있습니다
아까 다루어본 예시와
스텍의 최상단 원서부터 출력한다면 현제 스텍이 리스트형태로
출력하도록 만들면
출력할때는 먼저 나가고 자하는 원소부터
출력을 해야되서 원소의 순서를
이어서 스텍에 최하단 원소부터 출력하고자 한다면
출력하면 되겠죠
확인해보겠습니다
이렇게 스택에서 사용될 원소로 인트 자료형을 이용하겠다고 명시한 걸 확인할 수 있습니다 실제로 스텍의 원소를 더 넣고자 할때는 push함수 그리고 스택에서 원소를 꺼내고자 할때는 pop함수를 사용 하실수 있습니다
원소가 무엇인지 확인하고자 할때
출력하고자 할때는 이와같이 스택에 원소가 빌때까지 반복적으로 최상단 원소가 무엇인지 출력하면서 이제 그 최상단 원소를 꺼내도록 만들면 되는 겁니다
결과적으로 출력 결과를 확인해보시면 1325 즉 최상단 원소부터
꺼냈을때
이어서 자바에서도 스텍자료 구조를
스텍내에서 사용될 자료형을 명시할수 있습니다
integer 클래스를 이용하시면 되구요
스택에 출력하고자 할때
peek()매서드가 사용된다는 점이 특징
요
스택 자료구조는
기초 자료구조임으로 그 사용 방법에 대해서 정확히 알고있는것이 중요합니다
이어서 큐 자료구조에 대해서 알아보겠습니다 큐 자료구조는
입구와 출구가
큐라고 라고하는 것은
그래서 이와 같이 총 8개 연산이
나가는 것으로 표현 하도록 왼쪽에서 데이터가 들어온것으로 이해 할수 있구요
현재 큐의 담겨있는 내용이 2, 5 인걸 확인할 수 있습니다.
3과 7이 차례대로
수 있습니다
2 원소 5부터
원소가 들어오면
다시 여기에서 삭제연산을 수행하면 가장 먼저 들어왔던 데이터 2가
4173인걸 확인할 수 있죠
deque 라이브러리
리스트 자료형을 이용해서 큐를 구현할 수도 있는데요
댓 객체를 생성한 뒤에
팝 레프트 함수를
뎃 라이브러리
뎃 라이브러리의 원소를 이 어펜드 함수는
팝레프트는 o(1)즉 상수 시간입니다
뺄때는 팝 레프트를 사용하는 것이
큐에 모든워소를 줄여가도록 만들면 3714로 아까 그림에서 다루었던 예시와는
반대방향인걸 확인할 수 있습니다
그래서 큐의 원소를 역순으로 바꾼다음에 출력하고자 할때는 이렇게
리스트 자료형이 아닌 덱을 이용하시는게
파이선 에서
팝메소드를 호출하게 되면 원소를 꺼낸 뒤에
연산 자체가 O(k)만큼의 시간
덱을 이용해서
들어간다고 명시해주시면 되구요
반환 하고자 할때는
이 프론트 메서드는 현재 q자료구조의
출력하고자 한다면 큐가 빌때까지
q의 정수형 데이터가 들어갈때는 integer클래스를 넣어줄수 있도록 하고요
실제로 우리가
즉 q중에서도 연결리스트 방식으로 구현된 형태를 이용하시는게 가장 기본적인 형태입니다 오퍼메소드를 호출 하고요 큐에서 원소를 꺼내고자 할때는
poll메소드를 호출합니다
즉 대기열에 있다고 보시면 되겠습니다
폴메소드를 큐에 담긴 모든 데이터가
Last Updated:
Summarize & share videos seamlessly
Loading...