[코딩테스트]바탕화면 정리

윤재환·2025년 1월 15일

def solution(wallpaper):
    answer = []
    # '#'의 좌표를 저장하는 리스트를 생성
    x, y = [], []
    #wallpaper의 배열의 행만큼 반복
    for i in range(len(wallpaper)):  
        #각 행의 열(가로크기)만큼 반복
        for j in range(len(wallpaper[0])): 
            #해당 위치의 문자가 '#'일때 실행
            if wallpaper[i][j] == '#':
                #'#'의 좌표를 x(행), y(열) 리스트에 저장
                x.append(i)
                y.append(j)
    #최소값 (좌측 상단)과 최대값 +1 (우측 하단)을 answer에 추가
    answer.extend([min(x), min(y), (max(x)+1), (max(y)+1) ])
            
    return answer

먼저 해당 좌표를 저장할 리스트를 생성합니다.
이후 세로열(i)와 가로열(j)를 반복해서
해당 위치에 '#'이 있는지 확인합니다.
해당 위치에 '#'이 있을시
x에는 iy에는 j를 리스트에 저장합니다.
반복문이 끝났으면 answer에 최소값의 xy그리고 최대값을 +1한 xy값을 넣습니다.

여기서 최대값의 +1한 이유는 그양 최대값을 입력할시 해당 좌표에 있는 #(파일)직전까지 드레그를 한것이 되기때문에 +1을해서 드래그를 할 수 있게 만들엇습니다.

profile
백엔드 개발에 관심있는 1인

0개의 댓글