일단 문제 내용은 입력으로 숫자를 받은 뒤 바깥쪽에 있는 캥거루가 안쪽으로 점프하면서 이동할 경우, 최대 몇 번 이동할 수 있냐는 건데 예제를 보면 3 5 9가 있으면 3번에서 6번으로 뛰던가, 9번으로 4번으로 뛰는 방법을 말한다.
여기서 결국 최대 점프 횟수는 몇번인지 묻는 것이므로 가능한 최대 점프 횟수를 출력해주면 되고, 가장 주의할 점은 맞냐 틀리냐와 상관없이 문제에 하자가 있기 때문에
while ((s = br.readLine()) != null) {
}
이런 식으로 마지막에 들어오는 값이 null이 아닌지 체크해주는 부분이 없다면, 25%에서 무조건 에러가 발생하게 된다
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s;
while ((s = br.readLine()) != null) {
int[] kangaroo = Arrays.stream(s.split(" ")).mapToInt(Integer::parseInt).toArray();
int val1 = kangaroo[1] - kangaroo[0] - 1;
int val2 = kangaroo[2] - kangaroo[1] - 1;
System.out.println(Math.max(val1, val2));
}
}
}
문제를 풀어보자면 첫 번째 캥거루와 두 번째 캥거루, 두 번째 캥거루와 세 번째 캥거루 사이의 거리를 계산한 후 -1을 해주고 비교해서 더 큰 값을 출력해주면 끝이 난다
이거 문제 풀다보면 분명히 맞는데도 25%에서 오답이 나는데, 내 풀이가 문제가 아니라 입력에서 제대로 설명을 하지 않았기에 문제의 잘못이라서 엄청난 시간을 허비하고 어이를 상실하게 될 수 있다.
Leave a Reply