반응형
개인적인 풀이일 뿐, 최적의 정답이 아님을 알려드립니다.
문제 설명
난이도: 실버 4
사용언어: JAVA
우선 1이 한 번, 2는 두 번, 3은 세 번... 반복되는 수열을 만듭니다. 이를테면 122333444455555666666... 과 같은 형태이죠. 여기서 A와 B가 주어지면 수열에서 A에서부터 B까지의 합을 구하는 문제입니다.
풀이
저는 B 크기의 배열을 하나 만들어 배열의 각 원소에 해당 번호까지의 합을 저장했습니다. 즉 배열에서 3번째 원소에는 3번째까지의 합, 6번째 원소에는 6번째까지의 합을 저장하는 식입니다. 그리고 배열의 B번째 원소에서 A-1번째 원소를 빼주면 답을 구할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import java.io.*;
import java.util.StringTokenizer;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int A, B;
String s = br.readLine();
StringTokenizer st = new StringTokenizer(s);
A = Integer.parseInt(st.nextToken());
B = Integer.parseInt(st.nextToken());
int []arr = new int[B+1];
int i, j=1;
int cnt = 1;
while(true){
for(i=0;i<j;i++){
arr[cnt] = arr[cnt-1] + j;
if(cnt == B){
System.out.println(arr[B] - arr[A-1]);
System.exit(0);
}
cnt++;
}
j++;
}
}
}
|
cs |
반응형
'백준 온라인 저지 > Silver' 카테고리의 다른 글
[BOJ] 4963 - 섬의 개수 (0) | 2021.02.13 |
---|---|
[BOJ] 11048 - 이동하기 (0) | 2021.02.13 |
[BOJ] 20117 - 호반우 상인의 이상한 품질 계산법 (0) | 2021.02.10 |
[BOJ] 1590 - 캠프가는 영식 (0) | 2021.02.07 |
[BOJ] 1303 - 전쟁 - 전투 (1) | 2021.02.06 |