문제 url:
알고리즘 수업 - 알고리즘의 수행 시간 2
문제:
먼저 MenOfPassion 알고리즘을 보자,
A[], n을 파라미터로 받고, sum은 0으로 정의, for문을 통해 sum에다가 값을 초기화
그 후 sum을 return
우리가 해당 알고리즘에서 다른 것을 제외하고 가장 시간 복잡도가 큰 로직을 보면 바로 for문이라는 것을 알 수 있다.
for문은 O(N)에 해당하는 시간 복잡도를 가지고 있다.
그 이유는 O(N)은 입력 데이터 n의 데이터 크기에 비례해서 복잡도가 커진다. for문 역시 n번만큼 반복하기 때문에 n값에 따라 반복횟수가 달리진다.
그래서 해당 연산 횟수는 N의 크기와 같다고 볼 수 있다.
그렇다면 이를 이용해서 문제를 풀 수 있을 것이다.
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
System.out.println(n);
System.out.println(1);
}
}