코드트리 마법의 숲 탐색
하고싶은거/알고리즘 문제풀이2024. 8. 1. 23:05코드트리 마법의 숲 탐색

https://www.codetree.ai/training-field/frequent-problems/problems/magical-forest-exploration/description?page=1&pageSize=5 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 중요 포인트골렘의 이동 (수직, 왼쪽, 오른쪽) 이 가능한지 어떻게 확인(check()) 할 것인지정령이 골렘과 골렘이 연결되어있는 길로만 이동가능한데, 내 골렘과 다른 골렘은 어떻게 구분할건지(골렘번호), 출구는 어떻게 구분할 것인지(골렘번호의 음수) 1. 골렘 이동 (move())골렘의 ..

알고리즘 유형3. DFS, BFS feat. 유레카
하고싶은거/자료구조&알고리즘 공부2024. 6. 26. 17:03알고리즘 유형3. DFS, BFS feat. 유레카

DFS, BFS그래프, tree를 어떻게 자료구조로 표현할것인가? 를 알기 위해 먼저 자료구조 Stack, Queue를 먼저 알아봤다.더보기 Java Platform SE 8 docs.oracle.comStack : FILO or LIFO 불공평한 자료구조 입구 1개 (입구와 출구가 같다)push(n) : n을 스택에 입력 / pop() : 맨 위(앞)에 있는 원소 반환 + 삭제 / peek() : 맨 위(앞)에 있는 원소 반환Stack의 자료구조는 stack, queue, arraydeque로 만들 수 있다. (하지만 왠만하면 arraydeque를 이용) Queue : FIFO 입구 1개, 출구 1개, 같은 방향으로 요소들이 흐른?다offer(n) : 큐 끝에 n 추가 / poll() : 큐 앞에 요소..

백준 1043 (BFS)
하고싶은거/알고리즘 문제풀이2024. 4. 19. 00:35백준 1043 (BFS)

1043번: 거짓말지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게www.acmicpc.net 과정과장된 이야기를 들은 사람은 감염된다고 생각하면 쉬웠다.마치 토마토 문제처럼? 백준 7569 (BFS)7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100ssin-estella.tistory.com그래서 먼저 진실을 알고 있는 사람만 큐에 저장후, 모든 파티를 순회하면서 새롭게 진실을 알게된 사람은 큐에 저장하고..

비선형 구조 : 그래프 DFS, BFS, 다익스트라
하고싶은거/자료구조&알고리즘 공부2024. 4. 8. 17:15비선형 구조 : 그래프 DFS, BFS, 다익스트라

선형 구조 : 자료를 순차적으로 나열한 형태 배열 연결 리스트 스택/큐 비선형 구조 : 하나의 자료 뒤에 다수의 자료가 올 수 있는 형태 트리 그래프 그래프 구성 요소 정점(Vertex) : 데이터 간선(Edge) : 정점들을 연결하는데 사용 가중치 그래프 : 각 간선에 가중치(중요도, 거리등)가 있는 그래프 방향 그래프 : 정점간의 방향이 있는 그래프 DFS 깊이 우선 탐색 Depth First Search 막다른 길(더이상 연결된 간선이 없을 때 까지)이 나올 때까지 정점을 계속 방문 하는 그래프 끝까지 갔다가 다시 시작 정점으로 돌아오는 부분은 재귀함수로 구현할 수 있다. 그래프의 전체적인 모양을 파악하기 쉽다. void Dfs(int here) { // 방문 visited[here] = true;..

백준 7569 (BFS)
하고싶은거/알고리즘 문제풀이2024. 3. 30. 00:01백준 7569 (BFS)

7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 과정 문제를 보자마자 배추벌레나 컴퓨터 바이러스처럼 DFS가 생각났다. 다만, 이전 문제들과 다르게 3차원벡터가 필요할 것 같았고, 이 부분에서 생각이 오래 걸렸다. 토마토가 익는데는 하루가 필요하고, 분명 중복되게 인접하는 토마토가 있을텐데 이것과 관련하여 최소 일자를 그냥 DFS를 사용해서 구해버리면 되는건가 했다. → 여기서부터 실수였다. 몇일 동안 문제를 풀면서 DFS만 사용했더니 BFS를 잊고 있었다. 이 문제는 한개의 정점으로부..

image