글 작성자: 취업중인 피터팬
728x90

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

 

24265번: 알고리즘 수업 - 알고리즘의 수행 시간 4

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

www.acmicpc.net

 

문제 설명

 

시간복잡도를 분석하는 문제입니다.

 

문제 풀이

 

시간 복잡도에 대한 어느 정도 이해가 필요한 문제입니다.

시간 복잡도가 궁금하신 분들은 아래 게시글을 확인해 주세요.

https://kkungchan.tistory.com/321

 

알고리즘 - 시간 복잡도(Time Complexity)

이번 게시물은 시간 복잡도에 대해 정리해 보도록 하겠습니다. 정렬 알고리즘이나 백준 알고리즘을 풀 때도 사실 시간 복잡도를 고려하지 않을 수 없습니다. 백준 알고리즘 문제에 시간 복잡도

kkungchan.tistory.com

해당 함수는 n이 7일 때 2~7까지 7번, 3~7까지 6번..1번까지 총 21번을 도는 함수입니다.

즉, 7+6+5+4+3+2+1을 도는 것입니다.

1~n의 총 합의 공식은 n(n-1)/2이 기 때문에 해당 값을 결과 값으로 넣어주면 됩니다.

시간 복잡도는

1+(n-1)+n(n-1)/2+1+1

= n2/2 +n/2 + 2

로 최고사항의 차수는 2가 됩니다.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long n= sc.nextInt();
        System.out.println((n*(n-1))/2);
        System.out.println(2);
    }
}

정확한 이유는 모르지만 n값을 long으로 받아야 정답 처리가 되었습니다.