[Python/파이썬] 프로그래머스 Lv1 - 바탕화면 정리

문제 설명

 

제한사항

 

입출력 예


Solution.py

정답률이 낮은 문제이지만 생각보다 간단하게 풀 수 있습니다.

입출력 예제 2번 그림을 통해 설명해보겠습니다.

 

1. 첫 행부터 ~ 마지막 행에 있는 파일 중에 제일 처음 파일이 있는 행과 마지막에 파일이 있는 행을 찾아봅시다. 그러면 다음과 같이 표시 됩니다.

2.  첫 열부터 ~ 마지막 열에 있는 파일 중에 제일 처음 파일이 있는 열과 마지막에 파일이 있는 열을 찾아봅시다. 그러면 다음과 같이 표시 됩니다.

 

3. 표시된 파일을 사각형의 경계로 하여 사각형을 그려봅니다. 그러면 사각형은 다음과 같이 그릴 수 있습니다.

 

4. 이제 이 사각형의 시작 점 (1, 3 ) 끝나는 점(5, 8) 을 result로 반환하면 [1, 3, 5, 8] 이 됩니다.

이제 아래의 코드를 봅시다.

 

정답 코드
def solution(wall):
    row = []
    col = []
    for i in range(len(wall)):
        for j in range(len(wall[0])):
            if wall[i][j] == "#":
                row.append(i)
                col.append(j)
    return [min(row), min(col), max(row) + 1, max(col) + 1]

1. "#" 이라는 문자있으면 파일이 있다는 뜻으로 파일의 위치를 행을 뜻하는 row 배열에 파일의 행을 담고, 열을 뜻하는 col 배열에 파일의 열을 담습니다.

2. 해당 row와 col 배열에서 제일 작은 값이 이 사각형의 시작 점이 되고, 제일 큰 값이 사각형의 끝나는 점이 됩니다.