Save my data

프로그래머스 lv1. 바탕화면 정리 (파이썬) 본문

알고리즘/프로그래머스

프로그래머스 lv1. 바탕화면 정리 (파이썬)

양을 좋아하는 문씨 2023. 3. 15. 02:29

프로그래머스 문제는 정말 오랜만에 푼다.

적응의 문제인지 어떤지 확실하지는 않지만 시간이 좀 걸렸다.

다시 보니 어려운 문제인 것 같지는 않는데 당분간 문제를 많이 풀면서 지켜봐야겠다.


def solution(wallpaper):
    x = len(wallpaper)
    y = len(wallpaper[0])
    lx = x - 1
    ly = y - 1
    rx = 0
    ry = 0
    for i in range(x):
        if "#" in wallpaper[i]:
            lx = min(lx, i)
            rx = max(rx, i + 1)
    for i in range(x):
        for j in range(y):
            if wallpaper[i][j] == '#':
                ly = min(ly, j)
                ry = max(ry, j + 1)
    answer = [lx, ly, rx, ry]
    return answer

프로그래머스의 좋은 점은 다른 사람의 풀이중 많은 사람들이 추천한 코드를 볼 수 있다는 점이다.

인상깊었던 풀이를 가져왔다.


# 다른 사람 풀이

'''
def solution(wall):
    a, b = [], []
    for i in range(len(wall)):
        for j in range(len(wall[i])):
            if wall[i][j] == "#":
                a.append(i)
                b.append(j)
    return [min(a), min(b), max(a) + 1, max(b) + 1]
'''

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

체감상 프로그래머스 문제들은 백준 문제들에 비해 문제 해결에 필요한 정보가 덜 주어지는 것 같고 풀 때도 조건의 디테일에 신경을 많이 써야 되는 것 같다.

위 문제의 경우는 백준같았으면 잘 쳐줘야 실버 하위 문제인 것 같은데 푸는데 살짝 오래 걸렸다...

'알고리즘 > 프로그래머스' 카테고리의 다른 글

프로그래머스 lv2. 석유 시추  (0) 2024.04.24
Comments