본문 바로가기

Algorithm/Brute Force

(Python3) - 프로그래머스(연습문제): 바탕화면 정리

반응형

https://school.programmers.co.kr/learn/courses/30/lessons/161990

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

전수조사 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

1. answer 선언 후 빈 배열로 초기화합니다.

 

2. lux, luy, rdx, rdy 선언 후 각각 int max값, int max 값, 0, 0으로 초기화합니다.

📔 풀이과정

wallpaper에 대해 2차원 for loop를 수행하며 다음을 진행합니다.

1. i행 j열에 아이콘이 있다면 lux, luy에는 각각 i행 최솟값, j열 최솟값을 저장해주고 rdx, rdy에는 각각 i+1행 최댓값, j+1열 최댓값을 갱신해줍니다.

* 드래그는 발견된 아이콘 좌표의 행과 열에 각각 1더해준 값으로 비교해줘야합니다.

📔 정답 출력 | 반환

[lux, luy, rdx, rdy]를 반환합니다.


📕 Code

📔 Python3

def solution(wallpaper):
    answer = []
    lux, luy, rdx, rdy = 0x3f3f3f3f,0x3f3f3f3f,0,0
    for i in range(len(wallpaper)):
        for j in range(len(wallpaper[0])):
            if wallpaper[i][j] == '#':
                lux, luy = min(lux, i), min(luy, j)
                rdx, rdy = max(rdx, i+1), max(rdy, j+1)
    return [lux, luy, rdx, rdy]

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.