반응형
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
N의 범위가 100만이라 이중포문을 사용하기엔 수가 너무 커서 범위를 줄여줘야 한다고 생각했음.
주어진 N을 /2한 수까지만 for문을 돌려줬고 (어차피 그 이상은 연속된 수를 더하면 N을 초과하기 때문)
결과값은 N 자신의 수 1개도 연속된 수의 경우로 합산되기 때문에 1로 초기화해줬다.
내 코드
메모리 : 19868 KB
시간 : 417 ms
코드길이 : 834 B
[내 코드]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {
static int N, result;
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(br.readLine());
for(int t = 1; t <= T; t++) {
sb.append('#').append(t).append(' ');
N = Integer.parseInt(br.readLine());
result = 1;
count(N);
sb.append(result).append('\n');
}
System.out.print(sb);
}
static void count(int num) {
for(int i = 1; i <= num / 2; i++) {
int sum = 0;
int temp = i;
while(true) {
sum += temp;
if(sum > num)
break;
if(sum == num) {
result++;
break;
}
temp++;
}
}
return;
}
}
실행시간이 92ms인 코드가 있어서 가져와봤음.
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Solution {
private static int[] nums;
private static void prefunction() {
nums = new int[1414];
nums[0] = 1;
for(int i=1; i < 1414; i++) nums[i] = (i+1) + nums[i-1];
}
public static void main(String[] args) throws Exception {
prefunction();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(br.readLine());
for(int tc=1; tc <= T; tc++) {
initAndCalc(br);
sb.append("#").append(tc).append(" ").append(ans).append("\n");
}
System.out.println(sb);
}
private static int ans;
private static void initAndCalc(BufferedReader br) throws Exception {
int N = Integer.parseInt(br.readLine());
ans = 1;
for(int i=0; nums[i] < N; i++) {
if((N-nums[i]) % (i+2) == 0) ans++;
}
}
}
반응형
'SSAFY > SWEA' 카테고리의 다른 글
[SWEA] 4299 : 태혁이의 사랑은 타이밍 (0) | 2023.05.20 |
---|---|
[SWEA] 5789 : 현주의 상자 바꾸기 (1) | 2023.05.20 |
[SWEA] 3307 : 최장 증가 부분 수열 (0) | 2023.05.15 |
[SWEA] 13038 : 교환학생 (1) | 2023.05.13 |
[SWEA] 14178 : 1차원 정원 (0) | 2023.05.13 |