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