(백준 1260) 큐 사용에 대해서 질문드립니다!
선생님 덕분에 회차를 거듭할수록 재귀에 대한 이해도가 높아지고 있습니다 감사합니다!
기존에 계속 독학으로 하다보니 제가 아는 내용과 조금 다른 부분이 있어 오늘만 벌써 두번째 질문이네요 ㅜㅜ
기존에 큐를 구현할때
Queue<Integer> q = new LinkedList<>();
혹은
PriorityQueue<Integer>pq = new PriorityQueue<>();
로 구현해서 사용했었습니다!
근데 혹시 ArrayList로 구현하시는 이유가 있을까요??
하나 더 여쭤보자면...
dfs는 재귀함수를 호출하는게 필수인데 비해
bfs는 재귀호출이 없는데
그럼 bfs는 재귀가 아닌 queue를 무조건적으로 사용한다고 생각하면 될까요?
매번 훌륭한 강의 감사드립니다!!
답변 1
2
이번에도 너무 좋은 질문이네요! 저도 강의나 설명을 들을 때 질문을 많이 하는 편인데, 질문하는 만큼 더 집중하게 되고 이해가 잘되는 것 같아서 조금이라도 궁금한 부분은 꼭 질문 남겨주세요!
Queue를 왜 ArrayList로 정의했는가
우선 말씀하신 LinkedList나 Priority Queue를 사용해도 동일하게 문제를 풀 수 있어서 어떤 방식을 사용해도 무방합니다. 다만 제가 ArrayList를 사용한 건, 최대한 외워야 할 기본 라이브러리/클래스의 수를 줄이기 위해서에요. 결국 BFS를 하면서 필요한 건 맨 뒤에 요소를 추가하고 맨 앞의 요소를 꺼내오는 동작, 이 2가지이기 때문에 이 동작을 제공하는 자료구조라면 뭐든 사용이 가능합니다. 그런데 Queue나 PriorityQueue를 사용하려고 하다보면, 어떤 자료구조는 add/remove 함수를 써야 하고, 또 누구는 poll/peek를 써야 해서 어느 자료구조 하나도 제대로 사용하지 못하는 경우가 자주 발생하는 것 같아요. 그래서 제 강의나 코딩 테스트 문제를 풀 때 되도록 ArrayList와 같이 가장 기본적이고 보편적으로 많이 사용되는 자료 구조로 통일하려고 합니다!DFS == 재귀 && BFS == Queue?
말씀하신 대로 DFS는 재귀함수, BFS는 Queue로 구현하는 것이 가장 일반적이라 BFS 유형에서는 queue를 사용한다고 생각하시면 됩니다! BFS 강의도 최대한 빨리 준비해서 깔끔하게 정리해볼게요 :)
dfs 부문을 이렇게 작성해도 되나요?
1
74
1
x랑 y를 거꾸로 쓰는 개념이 너무 헷갈립니다...
1
97
2
dfs 파라미터에 count를 넣는이유
1
65
2
graph 채울때 for문 설계 질문
1
73
2
질문있습니다.
1
75
1
다른 강의 언제나오나용?
1
94
2
노드간 거리 계산
1
146
1
안녕하세요, 혹시 다른문제도 여쭤볼 수 있을까요?
1
131
1
최근에 올린 질문, 코드블럭으로 공유드립니다!
1
143
1
질문이 있습니다. dfs 메서드에 order를 이렇게 구현하면 안되는 이유가 무엇인가요?
0
135
2
깊이우선탐색2 백준 24480 수업노트에...
1
120
1
백준 24479 문제 제출 결과 "틀렸습니다" 라고만 나와서 어떤 부분이 틀렸는지 잘 모르겠어요 피드백 부탁드립니다
1
251
3
graph 만들때 boolean[][] 으로 만드는 경우랑 int[][] 나 ArrayList<Integer>[] 로 만드는 기준이 어떻게 되나요?
1
202
2
graph를 2차원 배열 또는 List로 하는 기준을 어떤식으로 잡으면 좋을까요...?
1
224
1
강사님 안녕하세요! 깊이 우선 탐색 2 (백준 24480)에서 제공하는 풀이 코드에서 궁금한 점이 있어서 질문 드립니다!
1
328
3
촌수 계산
1
355
3
연결 요소의 개수 (백준 11724)
1
268
1
백준 24479 문제 시간 초과 질문 드려요
1
384
1
백준 실행시 틀립니다.
1
374
1
재귀대신 스택으로 구현하면 안될까요?
1
410
1
dfs 매개변수에서 y,x 를 왜 순서를 반대로 쓰셨는지 궁금합니다.
1
373
1
안녕하세요 11724번 질문드려요!
2
316
1
출력할 때 BufferedWriter? StringBuilder?
1
513
1
answer++ 위치 질문
1
257
1





