[伯俊]2869号:カタツムリが行きたい-Java(Java)
13799 ワード
この問題はカタツムリが1日登って、また1日滑って、それから所望の高さの棒の先端まで繰り返し登ったことです.昼間は登り、夜は山頂まで滑っても滑らないのが特徴で、時間は0.15秒に制限されています.
Step 0. 解答コード
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Raise_Snail {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int up = Integer.parseInt(st.nextToken());
int down = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
int move = up - down; //실질적인 하루 이동 거리(올라간 거리 - 내려간 거리)
int safe_m = m - up; //up+down이 무조건 일어나는 날들의 마지노선을 구해줄 때 사용
if(safe_m == 0) {
System.out.println(1);
return;
}
int day = safe_m / move;
if (day * move + up >= m) {
System.out.println(day + 1);
} else{
System.out.println(day + 2);
}
}
}
問題を見ると時間制限がないようで、時間がきついので、何か修飾したいようですが、まずfor文で答えました.やはりタイムアウトですねタイムアウト正解率は20%くらいなのでStep 1. 質問へのアクセス
Step 2. 問題を解く
1.上昇距離、摺動距離、目標高さの上昇、下降、mが得られた。
int up = Integer.parseInt(st.nextToken());
int down = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
時間制限のため、BufferReaderを使用し、StringTokenizerをスペースに分割し、NextTokenにロードします.Stringタイプなのでintタイプに変換しました2.実際の移動距離(move)とmoveが無条件に発生した日付を求めるために、必要な変数(safem)を作成し、それを利用して私たちが探している最終日付を求める。
int move = up - down; //실질적인 하루 이동 거리(올라간 거리 - 내려간 거리)
int safe_m = m - up; //up+down이 무조건 일어나는 날들의 마지노선을 구해줄 때 사용
if(safe_m == 0) {
System.out.println(1);
return;
}
safem=0は目標高さを表します.上昇高さが0であれば、すぐに目標に達します.たとえば、7、4、7は、初日に7メートル上に進むと、目標を達成できます.この場合、1を直接印刷してメソッドを終了します.3.dayでは、実際の移動距離を、魔道の刃を求める際に使用するsafemに割り当て、実際の移動距離の魔道を求める。(本説明は、上記「安全m変数の説明を追加する」セクションの内容です。)その後day変数に+up(高さ)(高さを上げると一日が過ぎた)を加え、直接目標高さに達したり超えたりしたら翌日に到着します。そうしないと翌日には到着せず、翌日に到着します。
int day = safe_m / move;
if (day * move + up >= m) {
System.out.println(day + 1);
} else{
System.out.println(day + 2);
}
最後に式で翌日到着するか2日後に到着するかを手に入れた.に感銘を与える
これは良い問題であり,スキャン以外のI/O手段を用い,処理速度の観点からも良い問題である.他の人も公式を1行に書く場合がありますが、これからもっと勉強して、もっと簡潔な公式を作る能力を高めたいと思います.
出典:白駿2869号https://www.acmicpc.net/problem/2869
Reference
この問題について([伯俊]2869号:カタツムリが行きたい-Java(Java)), 我々は、より多くの情報をここで見つけました https://velog.io/@tkdeod1234/백준-2869번-달팽이는-올라가고-싶다-Java자바テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol