Create Opportunities

[알고리즘] 덧칠하기 본문

알고리즘

[알고리즘] 덧칠하기

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

'알고리즘' 카테고리의 다른 글

[알고리즘] 뒤에 있는 큰 수 찾기  (0) 2023.03.06
[알고리즘] 둘만의 암호  (1) 2023.03.06
[알고리즘] 숫자 변환  (0) 2023.03.02
[알고리즘] 대충 만든 자판  (0) 2023.03.02
[알고리즘] 카드 뭉치  (0) 2023.03.02