티스토리 뷰
https://school.programmers.co.kr/learn/courses/30/lessons/161989
문제이해
- 길이가 n미터인 벽이 있다. ⇒ 벽은 가로로 이뤄져있다.
- 길이가 가로로 m미터인 롤러가 있다.
- 칠해야할 벽인 section으로 주어진다. 이때 각 세션은 1x1미터 크기다.
- 안칠해도 될 곳, 이미 칠해져 있는 곳 모두 덧칠이 가능하다.
- 최소한의 작업 횟수를 구하자.
문제풀이
- 최대한 롤러가 칠할 수 있는 크기 안쪽으로 section이 많이 들어가야 한다. 그래야 최소 횟수로 작업이 가능하다.
- 롤러의 시작 인덱스와 끝 인덱스를 구하고 이거 보다 이 사이의 값들을 section에서 제거하면 된다.
- 한번 반복이 한번 칠한 것!
- 왼쪽에서 제거가 쉽게되도록 deque 자료구조를 활용했다.
from collections import deque
def solution(n, m, section):
answer = 0
section=deque(section)
while section:
start, end=section[0], section[0]+m
while section:
if start<=section[0]<=end-1:
section.popleft()
else:
break
answer+=1
return answer
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - 대충 만든 자판(파이썬) (0) | 2023.03.24 |
---|---|
[프로그래머스] - 큰 수 만들기 (0) | 2022.11.20 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 1316번
- 덧칠하기
- 백준
- 자바
- 7568
- this()
- 백엔드#게시판
- arraylist
- 11659
- 오류
- 4673번
- 스프링
- 1978
- 회고
- 파이썬
- 프로그래머스
- java
- Spring
- list
- springboot
- controller
- 게시판#자바#JPA#Entity
- querydsl
- HTTP#HTTP특징
- 사탕 게임#백준#3085
- MVC
- 서블릿#Servlet
- 백준#잃어버린 괄호#1541
- 백준#서강근육맨#20300
- 대충 만든 자판
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함