[JAVA] SWEA 7510 - 상원이의 연속 합
prefix sum을 계산해서 연속 합을 구하는식으로 짰다. 적절하게 break를 해주지 않으면 시간초과가 나온다.
import java.util.*;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
StringBuffer sb = new StringBuffer();
for (int tc = 1; tc <= T; tc++) {
sb.append("#").append(tc).append(" ");
int N = sc.nextInt();
long count = 0;
long sum[] = new long[N + 1];
for (int i = 1; i <= N; i++) {
sum[i] = sum[i - 1] + i;
}
for (int i = 1; i <= N; i++) {
if (sum[i] == N)
count++;
if(sum[i] < N)
continue;
for (int j = i - 1; j >= 1; j--) {
if(sum[i] - sum[j] > N)
break;
if (sum[i] - sum[j] == N)
count++;
}
}
sb.append(count).append("\n");
}
System.out.println(sb);
}
}
Author And Source
이 문제에 관하여([JAVA] SWEA 7510 - 상원이의 연속 합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gkdud583/JAVA-SWEA-7510-상원이의-연속-합저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)