본문 바로가기
프로그래머스/Lv.1

바탕화면 정리 - Python

by 아찌방 2024. 11. 4.

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/161990?language=python3

 

프로그래머스

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

programmers.co.kr

 

 

 

풀이 - 나의 생각

왼쪽 최상단, 오른쪽 최하단을 찾는 문제입니다.

 

즉 최상단의 x, 최왼측의 y, 최하단의 x, 최오른측의 y를 구하면 됩니다.

 

그렇기에 top, bottom, left, right 에 맞는 좌표 값을

 

반복문을 통해 찾고, 그 값을 반환하면 됩니다.

 

코드

 

def solution(wallpaper):
    top, bottom, left, right, = 50, 0, 50, 0
    for i in range(len(wallpaper)):
        for j in range(len(wallpaper[i])):
            if wallpaper[i][j] == '#':
                if top > i:
                    top = i
                if bottom < i:
                    bottom = i
                if left > j:
                    left = j
                if right < j:
                    right = j     
    
    return [top, left, bottom+1, right+1]

# 최상단 파일의 x좌표, 최왼측의 y좌표
# 최하단의 x좌표, 최우측의 y좌표

 

def solution(wallpaper):
    x, y = [], []
    for row, paper in enumerate(wallpaper):
        for col, wall in enumerate(paper):
            if wall == '#':
                x.append(row)
                y.append(col)
    
    return [min(x), min(y), max(x)+1,  max(y)+1]

# 최상단 파일의 x좌표, 최왼측의 y좌표
# 최하단의 x좌표, 최우측의 y좌표

 

 

 

 

 

 

다음에 또 봐요

 

728x90