白駿Baekjoon 2846号上り坂-JAVA
https://www.acmicpc.net/problem/2846
質問する
尚根は自転車で学校に通っている.自転車道は上り坂、下り坂、平地からなる.尚根さんは学校が始まる初日に自転車に乗った時、一定距離おきに高さを測った.尚根は最大の上り坂の大きさを求めたい.
測定した高さは長さNの数列で表すことができる.ここで、上り坂は少なくとも2つの河川からなる高さが増加した部分数列である.上り坂の大きさは、部分数列の最初の数字と最後の数字の違いです.
たとえば、道路の高さを次のように仮定します.12 3 5 7 10 6 1 11. この道には上り坂が2本ある.下線で表示される部分の数列は上り坂です.1本目の上り坂の大きさは7、2本目の上り坂の大きさは10です.高さ12と6のところは上り坂ではありません.
最大の上り坂を求めるプログラムを作成してください.
入力
第1行は、前根で測定した高さ数と数列の大きさN(1≦N≦1000)を与える.2行目には、N個の正の整数Pi(1≦Pi≦1000)が与えられる.各数字は上根で測定した高さです.
しゅつりょく
最初の行は最大上り坂のサイズを出力します.上り坂がなければ0を出力します.
入力例1
サンプル出力2
入力例3説明 は、単純なlong interval、interval概念によって最高値を更新した.
質問する
尚根は自転車で学校に通っている.自転車道は上り坂、下り坂、平地からなる.尚根さんは学校が始まる初日に自転車に乗った時、一定距離おきに高さを測った.尚根は最大の上り坂の大きさを求めたい.
測定した高さは長さNの数列で表すことができる.ここで、上り坂は少なくとも2つの河川からなる高さが増加した部分数列である.上り坂の大きさは、部分数列の最初の数字と最後の数字の違いです.
たとえば、道路の高さを次のように仮定します.12 3 5 7 10 6 1 11. この道には上り坂が2本ある.下線で表示される部分の数列は上り坂です.1本目の上り坂の大きさは7、2本目の上り坂の大きさは10です.高さ12と6のところは上り坂ではありません.
最大の上り坂を求めるプログラムを作成してください.
入力
第1行は、前根で測定した高さ数と数列の大きさN(1≦N≦1000)を与える.2行目には、N個の正の整数Pi(1≦Pi≦1000)が与えられる.各数字は上根で測定した高さです.
しゅつりょく
最初の行は最大上り坂のサイズを出力します.上り坂がなければ0を出力します.
入力例1
5
1 2 1 4 6
サンプル出力15
入力例28
12 20 1 3 4 4 11 1サンプル出力2
8
例えば、上り坂は全部で3本あります.(12−20,1−3−4,4−11)上り坂に含まれる数字は常に増加しなければならない.従って、1−3−4−1は上り坂ではない.入力例3
6
10 8 8 6 4 3
サンプル出力30
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String str[] = br.readLine().split(" ");
int[] arr = new int[str.length];
for (int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(str[i]);
}
int longInterval = 0; // 간격
int interval = 0;
for (int i = 0; i < N - 1; i++) { // 뒷값이랑 비교하기 때문에 N - 1
if (arr[i] < arr[i + 1]) { // 뒷 길이가 길때
interval += arr[i + 1] - arr[i];
} else {
interval = 0;
}
if (longInterval < interval)
longInterval = interval;
}
System.out.println(longInterval);
}
}
Reference
この問題について(白駿Baekjoon 2846号上り坂-JAVA), 我々は、より多くの情報をここで見つけました https://velog.io/@chamominedev/백준-Baekjoon-2846번-오르막길-JAVAテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol