문제 설명
1. 1씩 증가하는 수열 각 ai 마다 ai 가 i 번 나타나는 수열이다.
풀이
s, e 를 구간으로 생각하고 s 가 왼쪽 끝에 도달하면 값을 더해주기 시작했다.
그러다가 e 도 왼쪽 끝에 도달하면 값을 더하지 않도록 했다.
코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.*; | |
import java.io.*; | |
/** | |
* https://www.acmicpc.net/problem/1292 | |
* BOJ 백준온라인져지 1292 쉽게 푸는 문제 풀이 | |
*/ | |
public class Main { | |
private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); | |
public static void main(String args[]) throws IOException { | |
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); | |
StringTokenizer st = new StringTokenizer(br.readLine()); | |
int s = Integer.parseInt(st.nextToken()); | |
int e = Integer.parseInt(st.nextToken()); | |
int i = 0; | |
int sum = 0; | |
while (e > 0) { | |
i++; | |
for (int j = 0; j < i; j++) { | |
s--; | |
e--; | |
if (s <= 0) sum += i; | |
if (e == 0) break; | |
} | |
} | |
bw.write(String.valueOf(sum)); | |
bw.flush(); | |
} | |
} |
문제
동호는 내년에 초등학교를 입학한다. 그래서 동호 어머니는 수학 선행 학습을 위해 쉽게 푸는 문제를 동호에게 주었다.
이 문제는 다음과 같다. 1을 한 번, 2를 두 번, 3을 세 번, 이런 식으로 1 2 2 3 3 3 4 4 4 4 5 .. 이러한 수열을 만들고 어느 일정한 구간을 주면 그 구간의 합을 구하는 것이다.
하지만 동호는 현재 더 어려운 문제를 푸느라 바쁘기에 우리가 동호를 도와주자.
입력
첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1≤A≤B≤1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다.
출력
첫 줄에 구간에 속하는 숫자의 합을 출력한다.
예제 입력 1
3 7
예제 출력 1
15
'IT > 알고리즘' 카테고리의 다른 글
BOJ 백준온라인져지 10991 별 찍기 - 16 풀이 (0) | 2018.06.25 |
---|---|
BOJ 백준온라인져지 2644 촌수계산 풀이 (0) | 2018.06.25 |
BOJ 백준온라인져지 5565 영수증 풀이 (0) | 2018.06.22 |
BOJ 백준온라인져지 10824 네 수 풀이 (0) | 2018.06.22 |
BOJ 백준온라인져지 1550 16진수 풀이 (0) | 2018.06.21 |