Problem
Logic
분석
- 문제 유형 (알고리즘…)
- 제약 조건 (인풋 크기, 예외 값, 시공간 복잡도…)
설계
- 알고리즘 선택
- 앞에서 부터 길이만큼 true
- true면 넘기기
- 자료구조 선택
- 수도 코드 작성
- 정합판단
1 ~ 3
과정으로 도출된 로직이 문제를 해결하는가
- 그렇다 → 구현
- 잘 모르겠다 → 구현
- 아니다 → 1번부터 다시 점검
구현
테스트
My Code
cpp
boj/1449.cpp// https://www.acmicpc.net/problem/1449
#include <iostream>
using namespace std;
#ifdef LOCAL
# define LOG clog
#else
struct nullstream : ostream {
nullstream()
: ostream(nullptr) {}
};
nullstream LOG;
#endif
//--------------------------------------------------------------------------------------------------
#define MAX (1234567891)
#define MIN (-1234567891)
#include <iostream>
int main() {
int n, l;
cin >> n >> l;
int pipe_size = 1001;
vector<bool> pipe(pipe_size, true);
int count = 0;
for (int i = 0; i < n; ++i) {
int temp;
cin >> temp;
pipe[temp] = false;
}
for (int i = 0; i < pipe_size; ++i) {
if (pipe[i] == false) {
count++;
for (int j = 0; j < l; ++j) {
pipe[i + j] = true;
}
}
}
cout << count;
return 0;
}