본문 바로가기
코딩테스트

[백준] 1309번 '동물원' - Java

by CuckooBird 2023. 7. 23.

https://www.acmicpc.net/problem/1309

 

1309번: 동물원

첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다.

www.acmicpc.net


문제


코드

맞았습니다가 뜬 코드입니다. - 메모리 17148KB | 시간 160ms | 코드 길이 681B

import java.io.*;
import java.util.*;

public class Main {
	private static final BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
	private static final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
	
	public static void main(String[] args) throws IOException {
		int n = Integer.parseInt(bf.readLine());
		
		ArrayList<Integer> arr = new ArrayList<>();
		arr.add(1);
		arr.add(3);
		
		for(int i = 2 ; i <= n ; i++) {
			int pp = arr.get(i - 2) % 9901;
			int p = arr.get(i - 1) % 9901;
			
			arr.add(pp*3 + (p-pp)*2);
		}
		
		bw.write(Integer.toString(arr.get(n) % 9901));
		
		bf.close();
		bw.flush();
		bw.close();
	}
}

이런식으로 arr[i-2] * 3 + (arr[i-1] - arr[i-2]) * 2 = arr[i] 라는 규칙을 찾아 풀었습니다.