Problem Solving/항해99
99클럽 코테 스터디 3일차 TIL + 구현
wrathlion
2025. 4. 3. 01:27
문제
Programmers: 바탕화면 정리
- 설명: 파일의 위치가 주어졌을 때 최소한으로 스크롤하여 모든 파일을 선택하라
풀이
- 가장 가장 위쪽 파일의 $y$ 좌표, 왼쪽에 있는 $x$좌표, 가장 아래쪽의 $y$ 좌표, 가장 오른쪽은 $x$ 좌표가 답이다.
- 이때 마지막 두 값은 파일의 끝을 가리켜야하므로 $파일의 인덱스 + 1$을 해준다.
오늘의 회고
- 정렬해서 푸려고 했지만 예제의 하트처럼 왼쪽, 위쪽이 애매할 땐 정렬 기준이 애매하여
- 모든 파일을 아우르는 직사각형을 만들어야한다는 점을 깨닫고 이를 구현하였다.
Code
def solution(wallpaper):
ans = [50, 50, 0, 0]
for i in range(len(wallpaper)):
for j in range(len(wallpaper[i])):
if wallpaper[i][j] == '#':
ans[0] = min(ans[0], i)
ans[1] = min(ans[1], j)
ans[2] = max(ans[2], i + 1)
ans[3] = max(ans[3], j + 1)
return ans