백준 1292 쉽게 푸는 문제를 풀어보았습니다.
문제를 읽자마자 떠오르는 생각은 12233344445555....이런 수열을 배열에 넣고 해당 구간의 값을 다 더해서 출력하는 것 이였습니다.
하지만 이건 1000크기의 배열을 사용하는 것이였습니다. 어차피 내가 필요한 것은 특정 구간의 값인데 사용하지 않는 구간에 전부 값을 채워넣는 것은 메모리 낭비라고 생각했습니다. (사실 잘 모름..(┬┬﹏┬┬))
따라서 위와 같은 방법으로 코드를 짰습니다. <아래는 코드>
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int start =sc.nextInt();
int end = sc.nextInt();
start = method(start-1);
end = method(end);
System.out.println(end -start);
}
public static int method(int num) {
int count=0;
int sum=0;
for (int i = 1;; i++) {
count += i;
sum = sum + i*i;
if(count == num) {
return sum;
}
else if(count>num) {
int result = sum-(count-num)*i;
return result;
}
}
}
}
'백준' 카테고리의 다른 글
백준 2246번 문제를 풀어보았다☆ with java (0) | 2025.01.28 |
---|---|
백준 2869번을 풀어보았다.☆ with java (0) | 2025.01.19 |