
내가 생각했을때 문제에서 원하는부분
첫째 줄에 수열의 길이 N이 주어진다.
둘째 줄부터 N개의 줄에 수열의 각 원소가 차례대로 주어진다.
주어지는 수열은 등차수열이나 등비수열 중에 하나다.
N은 항상 3 이상 50이하이며,
입력되는 수는 10^6 이하의 자연수이다.
첫째 줄에 수열의 다음 원소를 출력한다.
이 수는 20억보다 작거나 같은 자연수이다.
내가 이 문제를 보고 생각해본 부분
첫번째 줄에서 수열의 길이 N을 읽어준다.
길이에 맞는 배열을 arr를 생성해주고
for문 루프를 사용하여 배열에 수열의 각 원소를 입력받는다.
등차수열을 확인하고
if - else 문으로 등차수열인지 등비수열인지 확인해준다.
코드로 구현
package baekjoon.baekjoon_23;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
// 백준 1731번 문제
public class Main798 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine()); // 첫 번째 줄에서 수열의 길이 N을 읽고
int[] arr = new int[N]; // 길이에 맞는 배열 arr을 생성
for(int i = 0; i < arr.length; i++) { // for 루프를 사용하여 배열에 수열의 각 원소를 입력
arr[i] = Integer.parseInt(br.readLine());
}
if(arr[2] - arr[1] == arr[1] - arr[0]) { // 등차수열 확인
System.out.println(arr[arr.length - 1] + (arr[1] - arr[0])); // 등차수열일 경우
} else {
System.out.println(arr[arr.length - 1] * (arr[1] / arr[0])); // 등비수열일 경우
}
br.close();
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.