Paul's Grit

[코테 풀이] 프로그래머스 - Lv.1 덧칠하기 (Python) 본문

취업 준비/코딩 테스트

[코테 풀이] 프로그래머스 - Lv.1 덧칠하기 (Python)

Paul-K 2024. 3. 27. 00:27

문제

https://school.programmers.co.kr/learn/courses/30/lessons/161989?language=python3

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

접근 포인트

처음 제출한 코드에서는 모든 구역을 탐색해서 시간 초과됐다.

 

덧칠할 section만 탐색하고, 그리디(?) 알고리즘의 개념 같다, 롤러 길이 m 만큼씩 탐색하면 된다.

 

코드

# 시간 초과
def solution(n, m, section)
	answer = 0
    while len(section) != 0:
        min_ = min(section)
        for i in range(min_, min_+m):
            if i in section:
                section.remove(i)
        answer += 1
    return answer



# 정답 코드
def solution(n, m, section):
    answer, start = 0, 0
    for s in section:
        if s >= start:
            start = s + m
            answer += 1
    return answer