[백준] 24263

당당·2023년 4월 24일
0

백준

목록 보기
48/179

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

📔문제

오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자.

입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시간을 예제 출력과 같은 방식으로 출력해보자.

MenOfPassion 알고리즘은 다음과 같다.

MenOfPassion(A[], n) {
    sum <- 0;
    for i <- 1 to n
        sum <- sum + A[i]; // 코드1
    return sum;
}

📝입력

첫째 줄에 입력의 크기 n(1 ≤ n ≤ 500,000)이 주어진다.


📺출력

첫째 줄에 코드1 의 수행 횟수를 출력한다.

둘째 줄에 코드1의 수행 횟수를 다항식으로 나타내었을 때, 최고차항의 차수를 출력한다. 단, 다항식으로 나타낼 수 없거나 최고차항의 차수가 3보다 크면 4를 출력한다.


📝예제 입력 1

7

📺예제 출력 1

7
1

코드1 이 7회 수행되고 알고리즘의 수행 시간이 n에 비례한다.


🔍출처

-문제를 검수한 사람: heeda0528, jhnah917, jthis, tlsdydaud1
-문제를 만든 사람: MenOfPassion


🧮알고리즘 분류

  • 구현
  • 시뮬레이션

📃소스 코드

import java.util.Scanner;

public class Code24263 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		int N=scanner.nextInt();
		
		System.out.println(N);
		System.out.println(1);
	}

}


📰출력 결과


📂고찰

https://nulls.co.kr/codeit/341

반복문의 시간 복잡도는 O(n)이다.
이중for문의 시간 복잡도는 O(n^2)이다.

2의 거듭제곱을 출력하는 함수와 같이 i두배씩 증가하거나 1/2씩 감소한다면, 시간 복잡도는 O(log n)이다.

반복문 안에 있는 반복횟수가 2배씩 증가 또는 감소 하는
경우의 시간 복잡도는 O(nlog n)이 된다.

위의 소스코드는 반복문 하나만 있으니 시간 복잡도는 O(n)이고, n은 입력값만큼이다.

profile
MySQL DBA 신입 지원

0개의 댓글