Completion over Perfection

프로그래머스 - 바탕화면 정리 (파이썬3 Python3) 본문

파이썬 (Python)

프로그래머스 - 바탕화면 정리 (파이썬3 Python3)

난차차 2023. 9. 4. 11:44
반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

처음에는 예제에 나와있는대로 드래그한 네모의 크기를 각각 구해서 비교하면서 정답을 찾아가려고 했는데 

생각해보면 그렇게 할 필요도 없습니다. 

 

결국 우리가 필요한건 모든 파일을 드래그할 수 있는 사각형의 최소크기이므로

좌측상단 좌표와 우측하단 좌표가 모든 파일이 들어올 수 있는 최소/최대치가 되면 됩니다. 

 

minX와 minY 변수에는 좌측상단의 좌표를 넣어줄거고 

maxX와 maxY 변수에는 우측하단의 좌표를 넣어줄겁니다. 

 

입력값으로 주어지는 wallpaper를 for문으로 한줄씩 돌면서 

#을 만날때마다 minX, minY, maxX, maxY값을 업데이트 해주면 됩니다. 

 

자세한건 코드 참고해주세요. 

 

def solution(wallpaper):
    answer = []
    minX = len(wallpaper[0]) # 5
    minY = len(wallpaper) # 2
    maxX = 0
    maxY = 0
    for i in range(len(wallpaper)):
        for j in range(len(wallpaper[i])):
            if wallpaper[i][j] == '#':
                
                if minX > j:
                    minX = j
                if minY > i:
                    minY = i 
                if maxX <= i:
                    maxX = i+1
                if maxY <= j:
                    maxY = j+1
            
    answer = [minY, minX, maxX, maxY]
    
    return answer

 

 

 

반응형
Comments