6주차 (2021년 02월 03일)
목표
-
인프런 파이썬 강의 1시간 수강
-
수강 후 내용 실습
-
알고리즘 < 정렬 > 문제풀기 (백준 2583번)
회고
-
인프런 파이썬 강의 40분 수강
-
배운 내용 jupyter notebook을 사용해서 실습
공부한 내용 : Python의 다양한 출력포멧, 파일입출력, pickle모듈
-
알고리즘 < 정렬 > 문제 : 백준 2583번(“영역구하기”) -> 난이도 : 실버1
해결 방법 : 전에 풀었던 “유기농배추” 문제처럼 dfs를 사용해서 풀었다. 그리고 오름차순으로 출력하기 위해서 dfs로 구한 넓이를 ArrayList에 저장한 후 오름차순을 정렬한 후 출력했다.
코드일부
public static void dfs(int x, int y) {
area++;
checked[x][y] = true;
for (int k = 0; k < 4; t++) {
int new_x = x + dx[t];
int new_y = y + dy[t];
if (new_x >= 0 && new_x < n && new_y >= 0 && new_y < m) {
if (board[new_x][new_y] == 0 && checked[new_x][new_y] == false) {
dfs(new_x, new_y);
}
}
}
}