プログラマーマットC++池
2214 ワード
[プログラマー]踏み台.
アイデアはこの探索を使用します. 方法石の位置をsortで昇順ソート 分の探索を利用して、石を1つ置くたびに、一番近い石からの距離をmidと比較し、もっと小さくなればcnt(石を抜く回数) を加える. cnt>nの場合、end=mid-1で目標距離 を短縮する. cnt<=nの場合、石を十分に置くことができるので、start=mid+1で距離を増やします.
この探索−パラメータ測定を知っていれば5分,知らなければ1時間の問題に悩む.
最近,符号化テストと符号化の課題を解く際にパラメータ探索に関する多くの問題が発生している.
パラメトリックサーチは,二分探索であることを認識し,アイデアがあれば実現自体が非常に容易であるため,極めて速い時間でコードを記述することができる.
この探索であることに気づいても,アイデアが出なければ数時間の思考はパラメトリック探索の問題であるべきである.
これらしか体験できず、特に10億を超える範囲が非常に広い場合は、二分探索とパラメータ研究であることを疑う必要があります.
アイデア
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(int distance, vector<int> rocks, int n) {
int answer = 0;
sort(rocks.begin(),rocks.end());
int start = 0;
int end = distance;
while(start <= end){
int mid = (start + end) / 2;
int cnt = 0;
int left = 0;
for(int i=0;i<rocks.size();i++){
if(rocks[i] - left >= mid) left = rocks[i];
else cnt++;
}
if(cnt > n) {
end = mid - 1;
}
else{
answer = max(answer,mid);
start = mid + 1;
}
}
return answer;
}
評価この探索−パラメータ測定を知っていれば5分,知らなければ1時間の問題に悩む.
最近,符号化テストと符号化の課題を解く際にパラメータ探索に関する多くの問題が発生している.
パラメトリックサーチは,二分探索であることを認識し,アイデアがあれば実現自体が非常に容易であるため,極めて速い時間でコードを記述することができる.
この探索であることに気づいても,アイデアが出なければ数時間の思考はパラメトリック探索の問題であるべきである.
これらしか体験できず、特に10億を超える範囲が非常に広い場合は、二分探索とパラメータ研究であることを疑う必要があります.
Reference
この問題について(プログラマーマットC++池), 我々は、より多くの情報をここで見つけました https://velog.io/@nacean/프로그래머스-징검다리-C-풀이テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol