파이썬 알고리즘 : 바탕화면 정리
2023년 12월 15일 알고리즘 문제풀이 문제 바탕화면 정리 난이도 Lv.1 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 def solution(wallpaper): answer = [] files_x = [] files_y = [] n = len(wallpaper) m = len(wallpaper[0]) for i in range(n): for j in range(m): if wallpaper[i][j] == '#': files_x.append(i) files_y.append(j) answer.append(min(files_x)) answer.append(min(files_y)) answer.append(max(files_x)+1) answer.append(max(files_y)+1) return answer 처음엔 보고 조금 겁먹었지만 의외로 한번에 풀려버렸다. 존재하는 파일들을 모두 포함하는 드래그 중 가장 거리가 짧은 것을 찾기 위해 DFS나 BFS를 이용해야하나? 라는 생각을 했었다. 하지만 결국 존재하는 파일들의 x 좌표 값중 최솟값과 최댓값, y 좌표 중 최솟값과 최댓값만 찾으면 해결되는 문제였다. 조금 유의할 것은, 최댓값의 좌표에는 +1을 해주어야 한다. 파일의 좌측 상단 모서리를 기준으로하기 때문에 파일을 포함시키기 위해선 파일의 우측 하단 모서리까지 포함해야 한다. ...