BEYOND SW 캠프 19기 7주차 회고

Seung min·2025년 8월 30일
post-thumbnail

한주간 느낀점

7주차는 코딩테스트를 위한 알고리즘을 배우는 한 주였다. 덕분에 잘 모르고 있었던 알고리즘들을 알 수 있었고 나의 코딩테스트 공부 방법에 대해 다시 생각해볼 수 있었다. 결국, 코딩테스트 준비는 꾸준히 많은 문제를 풀어보는 것이 답인 것같다는 생각을 했다.

새롭게 배운점

DFS, BFS

DFS는 후입선출 구조(stack 또는 재귀함수)를 활용해 한 쪽 분기를 정하여 최대 깊이까지 탐색을 마친 후 다른 쪽 분기로 이동하여 탐색을 수행하는 알고리즘이다.

BFS는 선입선출 구조인 큐를 활용햐 탐색 시작 노드와 가까운 노드를 우헌하여 탐색 목표 노드에 도착하는 경로가 여러 개일 때 최단 경로를 보장한다.

Scanner 대신에 BufferedReader를 사용하여 사용자의 입력을 받는다.
StringTokenizer를 사용하여 스페이스바로 띄어쓴 사용자의 입력을 하나씩 토큰으로 만들어서 변수에 초기화 시킨다.

map 배열을 만들어서 특정 노드가 어떤 노드와 연결되어 있는지 표기한다.
방문 배열(visit)을 만들어서 특정 배열에 방문했는지를 true, false로 표기한다.

BFS는 큐를 사용하여 방향 백터를 저장한다.
그리고 map 배열의 특정 요소 주변을 탐색하는 알고리즘을 구성한다.
또한 주변을 탐색할 때 배열의 범위를 벗어나면 안되는 조건도 필요한다.

재귀 함수를 사용하여 dfs, bfs 알고리즘을 반복한다.

Keep

그동안 미뤄두었던 코딩테스트 공부를 다시 시작하였다. 다시 코딩테스트 감을 끌어올리기 위해 하루에 한문제씩 꾸준히 백준 사이트에서 알고리즘 문제를 풀 예정이다. 최근에는 DFS,BFS 문제를 풀고 있다. 수업 중에 공부를 하면서 흥미롭다고 생각한 알고리즘이라서 문제를 풀면서 조금 더 깊게 알고 싶다는 생각이 들었다.

Problem

수업 중에 배운 동적 계획법 알고리즘을 아직 제대로 이해하지 못했다. 문제에서 규칙을 찾아서 점화식을 만들고 코드로 구현하는 방식의 알고리즘인데, 수업 중에 강사님께서 설명을 해주어도 이해를 못할 때가 많았다. 동적 계획법은 나중에 따로 시간을 내어서 복습을 해야겠다고 생각하였다.

Try

주말에는 DFS와 BFS의 알고리즘 문제를 계속해서 풀면서 완전히 나의 지식으로 만들 예정이다. 이런 방식으로 다른 어려운 알고리즘도 하나씩 내 것으로 만들 계획이다.

다음주 계획 혹은 다짐

다음주부터 새로운 프로젝트가 시작된다. 전 프로젝트에서의 실수를 반복하지 않고 새로운 조원들과 프로젝트를 문제없이 해나갈 수 있도록 지난 프로젝트에서의 나의 활동을 복기해보아야 겠다.

profile
Seung min의 개발 공부 노트

0개의 댓글