8주차 (08월 03일)
목표
- 인프런 알고리즘 강의
부분 강의 수강 후 개념 정리 - 강의 수강 후 백준에서
관련 문제 2문제 풀기(난이도 : 실버4 이상)
회고
- 인프런에서
알고리즘 문제 푸는 강의 수강을 하고 백준에서 1문제를 풀고 1문제는 반이상 풀었다. - 알고리즘
문제 : 백준 1260번 (난이도 : 실버2)
해결 방법 : BFS는 원래 하던대로 큐에 넣어서 탐색 했고, DFS는 재귀함수를 이용해서 탐색을 했다.
코드일부
static void dfs(int v) {
check[v] = true;
System.out.print(v +" ");
for(int i = 1; i <= n; i++) {
if(check[i] == false && line[v][i] == true) {
dfs(i);
}
}
}
static void bfs(int v) {
Queue<Integer> q = new LinkedList<Integer>();
q.add(v);
check[v] = true;
System.out.print(v +" ");
while(!q.isEmpty()) {
int tmp = q.poll();
for(int i = 1; i <= n; i++) {
if(check[i] == false && line[tmp][i] == true) {
q.add(i);
check[i] = true;
System.out.print(i +" ");
}
}
}
}
- 알고리즘
문제 : 백준 1260번 (난이도 : 실버1)
DFS를 사용해서 점 사이에 갈 수 있는 길을 탐색 하는 방법으로 시도하던 중 시간이 없어서 풀지 못했다.