https://www.acmicpc.net/problem/2828
바구니가 포함한 인덱스를 벗어난 숫자에 사과가 떨어질경우를 생각해보았다.
만약 바구니가 가르키는 가장 끝 인덱스보다 큰 숫자가 들어온다면 바구니의 가장 끝 인덱스는 그 큰 숫자가 될 것이고,
바구니가 가르키는 가장 작은 인덱스보다 작은 숫자가 들어온다면 바구니의 가장 처음 인덱스는 그 작은 숫자가 될것이다.
그리고 인덱스가 변한 만큼 count해 주면 될것이다.
import java.io.*;
import java.math.BigInteger;
import java.util.StringTokenizer;
import static java.lang.Integer.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st= new StringTokenizer(br.readLine()," ");
int N= Integer.parseInt(st.nextToken());
int M= Integer.parseInt(st.nextToken());
int start=1;
int end=M;
int count=0;
int q=Integer.parseInt(br.readLine());
for(int i=0;i<q;i++){
int landing=Integer.parseInt(br.readLine());
if(landing>end){
count+=landing-end;
start+=landing-end;
end=landing;
}
if(landing<start){
count+=start-landing;
end-=start-landing;
start=landing;
}
}
bw.write(String.valueOf(count));
br.close();
bw.flush();
bw.close();
}
}
'Koala - 13기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준 5533 Python] (0) | 2024.02.18 |
---|---|
[BOJ/java] -12789번 도키도키 간식드리미 (0) | 2024.02.18 |
[백준/C++] 16435: 스네이크버드 (0) | 2024.02.12 |
[백준/C++] 12789: 도키도키 간식드리미 (0) | 2024.02.12 |
[백준/C++] 1181 단어정렬 (0) | 2024.02.11 |