[Coding Test] 백준 JAVA 24265 알고리즘 수업 - 알고리즘의 수행 시간 4 - 시간 복잡도

LeeSeungEun·2023년 5월 19일
0

Coding Test

목록 보기
24/38

1. 문제

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);

    }
}

3. 풀이

  • n이 7이라고 가정할 때 첫 번째 for 문은 1부터 6까지 반복한다.
    두 번째 for 문에서는 i가
    1일 경우 j는 2부터 7까지 6번,
    2일 경우 j는 3부터 7까지 5번,
    ...
    5일 경우 j는 6부터 7까지 2번,
    6일 경우 j는 7 한 번을 수행하여 총 21번 수행한다.
  • 따라서 i는 [1, n-1], j는 [i+1, n] 이다. i가 n-1번 도는 동안 j는 순서대로 n-1, n-2, n-3, ... , 1번 돌게 된다. 결론적으로 n-1 + n-2 + ... + 1 이 답이 된다. 등차가 1인 등차수열의 합을 구하면 되므로 첫째 줄에는 n*(n-1)/2 를 출력해주면 된다.
  • n²/2이 최고차항이므로 최고 차수는 2이다.

4. 링크

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

0개의 댓글