난이도: Bronze 2
프로그래밍 언어: Java
문제명: 추론
푼일자: 2021년 7월
주소: https://www.acmicpc.net/problem/1731
문제풀기
1차로 작성한 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class question_1731 { // 추론
public static void main(String[] args) throws IOException {
var br = new BufferedReader(new InputStreamReader(System.in));
var N = Integer.parseInt(br.readLine());
boolean isAP = true;
int reverseNum = 0;
var Sequence = new int[N];
for (int i = 0; i < N; i++) {
Sequence[i] = Integer.parseInt(br.readLine());
if (i != 0 && isAP){
if (i == 1) reverseNum = Sequence[1] - Sequence[0];
else if (reverseNum != Sequence[i] - Sequence[i - 1]) isAP = false; // 이전 차이가 이번 차이와 동일하지 않을 경우
}
}
System.out.print((isAP) ? Sequence[N-1] + reverseNum : Sequence[N-1] * (Sequence[1]/Sequence[0]));
br.close();
}
}
2차로 수정된 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class question_1731 { // 추론
public static void main(String[] args) throws IOException {
var br = new BufferedReader(new InputStreamReader(System.in));
var N = Integer.parseInt(br.readLine());
var Sequence = new int[N];
for (int i = 0; i < N; i++) Sequence[i] = Integer.parseInt(br.readLine());
if(Sequence[2]-Sequence[1] == Sequence[1]-Sequence[0])
System.out.print(Sequence[N-1] + (Sequence[1]-Sequence[0]));
else System.out.print(Sequence[N-1] * (Sequence[1]/Sequence[0]));
}
}
반응형