알고리즘
[알고리즘] 덧칠하기
kimjaeyoon
2023. 3. 2. 21:17
Lv. 2
내 풀이 (오답)
# n 미터짜리 벽 -> n 개의 구역으로 나눔. (1~n)
# 페인트를 다시 칠해야 할 구역 정함.
# 페인트 롤러의 길이 m 미터
def solution(n, m, section):
answer = len(section)
start = section[0]
for i in range(len(section)):
if m >= section[i+1] - start + 1:
answer -= 1
else:
start = section[i+1]
return answer
왜 틀렸나?
이상한 것에 집착해서.
: (n-m+1) 번째 이후의 페인트 여부는 좀 다르게 봐야한다고 생각했음.
정답 풀이
def solution(n, m, section):
answer = 1
start = section[0]
for block in section:
if block - start >= m: # 두 개의 블럭 색칠
start = block
answer += 1
return answer
그냥 다음 section[i] 을 색칠하기 위해서 이동해야 하면 answer+1 해주면 됨..
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges