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

문제 설명

etc-image-0

 

제한사항

etc-image-1

 

입출력 예

etc-image-2


Solution.py

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

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

etc-image-3

 

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

etc-image-4

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

etc-image-5

 

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

etc-image-6

 

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 배열에서 제일 작은 값이 이 사각형의 시작 점이 되고, 제일 큰 값이 사각형의 끝나는 점이 됩니다. 

반응형