알고리즘

[프로그래머스, 파이썬] 덧칠하기

hminor 2024. 3. 11. 11:09

풀이

  • try, except를 사용한 풀이로
  • n+1 길이의 배열을 만든 후 덧칠해야하는 section을 탐색하면서
  • 칠해져 있다면 패스 아니라면
  • 해당 위치부터 범위까지 1로 만든 후 카운팅
  • 넘어 버린다면 카운팅만 해서 해결
  • 만약 여기서 에러가 발생했다면 아래와 같이 해결했을 듯
  • 범위가 넘어간다면 해당 칸에서 한 칸씩 줄이면서 어떻게든 칠하게 만든다면
  • 해결이 거의 되지 않을까 했는데 에러가 없어서 그냥 이렇게 해결 완.

 

def solution(n, m, section):
    result = 0
    li = [0]*(n+1)
    for i in section:
        if not li[i]:
            try:
                li[i:i+m] = [1]*m
                result += 1
            except: result += 1
    return result