알고리즘
[프로그래머스] Lv1. 바탕화면 정리
j9972
2023. 3. 8. 13:51
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/161990
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
접근
그림으로 그려보면 결국 알수있는 점은
x1 = 가장 위쪽 , y1 = 가장 왼쪽
x2 = 가장 아래쪽 , y1 = 가장 오른쪽
을 표현하면 된다! 이다.
표현하기 위해서 x1,x2,y1,y2를 각각 초기화 해주고 ( 초기화는 범위를 잘 체크해주면 된다 ) , '#' 이 나올때마다 그 위치의 값을 적용시켜주면 된다.
참고로, elif i > x2 같은 코드를 적으면 #이 한개있을때를 만족못시켜준다
코드
def solution(wallpaper):
# 초기화
x1,y1 = 50,50 # 가장 위, 가장 왼쪽
x2,y2 = 0,0 # 가장 아래, 가장 오른쪽
n = len(wallpaper)
m = len(wallpaper[0])
for i in range(n):
for j in range(m):
if wallpaper[i][j] == '#':
if i < x1:
x1 = i
if i > x2:
x2 = i
if j < y1:
y1 = j
if j > y2:
y2 = j
return [x1,y1,x2+1,y2+1]