이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 (김태원)의 문제입니다.
문제 설명
코드
package inflearn_algorithm.chapter2;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class sec02_04 {
public static void solution(int N) { //배열 이용
Long[] arr = new Long[N];
arr[0] = 1L;
arr[1] = 1L;
System.out.print(arr[0] + " ");
System.out.print(arr[1] + " ");
for(int i = 2; i < N; ++i)
{
arr[i] = arr[i - 2] + arr[i - 1];
System.out.print(arr[i] + " ");
}
}
public static void solution(Long N) { //배열 이용 X
Long p = 1L, n = 1L;
System.out.print(p + " " + n +" ");
for(int i = 2; i < N; ++i)
{
Long c = p + n;
System.out.print(c + " ");
p = n;
n = c;
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
solution(Integer.parseInt(br.readLine())); //배열을 이용할 때
solution(Long.parseLong(br.readLine())); //배열을 이용하지 않을 때
}
}
설명
- 반복문은 N-2번 반복되므로 O(N-2) = O(N)의 시간 복잡도를 가진다.
- 각 반복에서 덧셈과 배열 접근 작업을 수행하므로 반복문의 전체 시간 복잡도는 O(N)이다.
'자료구조 & 알고리즘 > Inflearn' 카테고리의 다른 글
[인프런 알고리즘] Chapter 2, 6번 문제(뒤집은 소수) (1) | 2024.07.14 |
---|---|
[인프런 알고리즘] Chapter 2, 5번 문제(소수(에라토스테네스의 체)) (1) | 2024.07.14 |
[인프런 알고리즘] Chapter 2, 3번 문제(가위, 바위, 보) (0) | 2024.07.13 |
[인프런 알고리즘] Chpater 2, 2번 문제(보이는 학생) (0) | 2024.07.12 |
[인프런 알고리즘] Chpater 2, 1번 문제(큰 수 출력하기) (0) | 2024.07.12 |