Deff_Dev
[프로그래머스] 덧칠하기 (C++) 본문
문제
이 문제는 m미터의 길이를 가진 롤러로 덧칠해야할 모든 구역을 덧칠할 때 최소 덧칠 횟수를 구하는 문제입니다.
첫 구역부터 순서대로 덧칠하고, 덧칠이 안 된 구역부터 다시 덧칠하는 방법으로 문제를 풀이했다.
풀이
#include <string>
#include <vector>
// https://school.programmers.co.kr/learn/courses/30/lessons/161989
using namespace std;
int solution(int n, int m, vector<int> section) {
int answer = 1; // 최소 1개의 구역 이상이기 때문에 answer = 1
int draw = section.size(); // 덧칠 해야할 구역 갯수
for(int i = 0; i< section.size(); ){
for(int j = i; j < section.size(); j++){
// 덧칠 하지 못한 구역이 있다면
if(section[i] + m <= section[j]){
// 해당 부분부터 다시 덧칠
i = j;
break;
}
draw--; // 반복문이 반복된 만큼 덧칠해야할 구역 갯수 --
}
if(draw == 0){ // 모든 구역을 덧칠 완료 했다면 break
break;
}
answer++;
}
return answer;
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 둘만의 암호 (C++) (0) | 2024.03.09 |
---|---|
[프로그래머스] 대충 만든 자판 C++ (0) | 2024.03.08 |
[프로그래머스] 추억 점수 (C++) (0) | 2024.03.06 |
[프로그래머스] 개인정보 수집 유효기간 (C++) (0) | 2024.03.05 |
[프로그래머스] 달리기 경주 (C++) (0) | 2024.03.04 |