프로그래머스 코딩테스트/Python

프로그래머스 덧칠하기 Python

Coding-Su 2024. 6. 30. 08:55
728x90

정답

def solution(n, m, section):
    answer = 0
    wall = [0 for i in range(0, n)]
    
    for i in section:
        wall[i-1] = 1
    
    for i in range(0, len(wall)):
        if wall[i] == 1:
            if i + m >= len(wall): 
                answer += 1
                break
            else:
                for j in range(0, m):
                    wall[i+j] = 0
                answer += 1
            
    return answer

wall 리스트를 만들어서 section을 통해 페인트칠이 필요한 인덱스를 wall 리스트에 표시합니다.

그리고 for문을 돌면서 wall의 값이 1인 경우 페인트를 칠하고 answer변수에 1을 더해주는 방식으로 풀었습니다.

마지막에는 list범위를 나가지 않도록 if i + m >= len(wall) 를 사용해주었습니다.

728x90