본문 바로가기
코딩테스트 파이썬/파이썬 프로그래머스 1단계

덧칠하기

by 세용용용용 2023. 9. 24.

코딩테스트 연습 - 덧칠하기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr

 

나의 코드


def solution(n, m, section):
    answer = 0
    # 현재 벽상태를 리스트로 표시
    board_list = [0]*n
    for i in section:
        board_list[i-1] = 1
   
    # 앞에서 부터 롤러 길이만큼 칠해주기
    while True:
        if sum(board_list) == 0:
            break

        for i in range(len(board_list)):
            if board_list[i] == 1:
                board_list[i:i+m] = [0]*m
                break
        # 칠하는 횟수 카운트
        answer += 1
    # print(answer)
    return answer
solution(8, 4, [2,3,6])

시간 초과 오류... 다시 생각해보자

 

수정 코드

def solution(n, m, section):
    answer = 0
    # 모든 구역이 칠해질때까지
    while section:

        # 마지막 칠해지는 구역
        max_board = section[0]+m-1

        # 페인트 칠해주기
        for _ in range(len(section)):
            # 마지막 칠해주는 구역보다 크면 break
            if section[0] > max_board:
                break
            section.pop(0)
       
        # 페인트 칠하는 횟수 증감
        answer += 1
    #print(answer)
    return answer
solution(8, 4, [2,3,6])

'코딩테스트 파이썬 > 파이썬 프로그래머스 1단계' 카테고리의 다른 글

공원 산책  (0) 2023.10.06
달리기 경주  (0) 2023.10.05
추억 점수  (0) 2023.09.24
신고 결과 받기  (0) 2023.05.22
바탕화면 정리  (0) 2023.05.22