๋ฌธ์
์ฝ๋
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int N, M;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cin>>N>>M;
vector<int> v(M);
double height = 0;
for(int i=0; i<M; i++) cin>>v[i];
if(M==1) height = N;
height = fmax(v.front(), (ceil(N-v.back())));
for(int i=0; i<M-1; i++){
height = fmax(height, ceil((v[i+1]-v[i])/2.0));
}
cout<<(int)height;
}
ํ์ด
๋ฌธ์ ๋ถ๋ฅ๋ binary search๋ก ๋์ด์์ง๋ง ํด๋น ๋ฐฉ๋ฒ์ผ๋ก ํ์ด ์์ด๋์ด๋ฅผ ๋ ์ฌ๋ฆฌ์ง ๋ชปํด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ์ต๋๋ค.
- ๋งจ ์ฒ์ ๊ฐ๋ก๋ฑ์ ๊ฐ๋ก๋ฑ์ ๊ฑฐ๋ฆฌ๋งํผ ๋ฐํ์ผ ํ๊ณ , ์ ค ๋ ๊ฐ๋ก๋ฑ์ (๊ตด๋ค๋ฆฌ์ ๊ธธ์ด - ๋ ๊ฐ๋ก๋ฑ์ ๊ธธ์ด) ๋งํผ ๋ฐํ์ผ ํฉ๋๋ค.
- ceil์ ์ฌ๋ฆผ ํจ์์ ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ๊ฐ ๊ฐ๋ก๋ฑ ์ฌ์ด๋ (๊ฐ๋ก๋ฑ ์ฌ์ด ๊ธธ์ด/2) ๋งํผ๋ง ๋ฐํ๋ฉด ๋ฉ๋๋ค.
- ๋ฐ๋ผ์ 1๋ฒ๊ณผ 3๋ฒ์ค ํฐ ๊ฐ๋ก๋ฑ์ ๋์ด๋ฅผ ๊ฐฑ์ ํด๊ฐ๋ฉฐ ๊ตด๋ค๋ฆฌ์ ๊ธธ์ด N์ ๋ชจ๋ ๋น์ถ๊ธฐ ์ํ ๊ฐ๋ก๋ฑ์ ์ต์ ๋์ด๋ฅผ ์ฐพ์ต๋๋ค
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 14712๋ฒ - ๋ด๋ชจ๋ด๋ชจ (Easy) (0) | 2022.08.20 |
---|---|
[๋ฐฑ์ค,c++] 16987๋ฒ - ๊ณ๋์ผ๋ก ๊ณ๋์น๊ธฐ (0) | 2022.08.20 |
[๋ฐฑ์ค,c++] 10971๋ฒ - ์ธํ์ ์ํ2 (0) | 2022.08.20 |
[๋ฐฑ์ค,c++] 17521๋ฒ - Byte Coin (0) | 2022.08.18 |
[๋ฐฑ์ค,c++] 11437๋ฒ - LCA (0) | 2022.08.17 |
[๋ฐฑ์ค,c++] 15900๋ฒ - ๋๋ฌด ํ์ถ (0) | 2022.08.15 |
๋๊ธ