728x90
https://www.acmicpc.net/problem/2355
2355번: 시그마
첫째 줄에 두 정수 A, B가 주어진다. (-2,147,483,648 ≤ A, B ≤ 2,147,483,647)
www.acmicpc.net
A와 B 사이의 전체적인 합을 구하는 문제
흔히 알고 있는 n(n+1) / 2 1부터 n까지의 합 공식을 살짝만 변형시켜주면 된다. 문제는 1부터 B가 아니라 A부터 B이기 때문에 조건을 설정해서 식을 약간 변형해줘야함.
그결과 (A + B ) * (A - B + 1) /2 라는 공식이 나오게 되었다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class BJ2355 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
long A = Integer.parseInt(st.nextToken());
long B = Integer.parseInt(st.nextToken());
if(B>A) {
long temp = B;
B = A;
A = temp;
}
long result = (A+B) * (A-B+1) / 2;
System.out.println(result);
}
}
처음에 int로 설정했엇는데, 오류가나서 문제의 범위를 다시 확인하고 long 타입을 적용시켜주었다.
처음에는 배열을 이용해서 for문을 통해 i가 돌때마다 배열에 넣고, 그 내부의 총합을 구하려고했는데, 잘 안되가지고,
무난하게 if문으로 해결...
728x90
'Algorithm' 카테고리의 다른 글
[Java] 백준 별 찍기 2441번 2442번 2443번 (0) | 2022.03.28 |
---|---|
[Java] 백준 2455번 지능형 기차 (0) | 2022.02.23 |
[Java] 백준 17388번 와글와글 숭고한 (0) | 2022.01.21 |
[Java] 백준 23825번 SASA 모형을 만들어보자 (0) | 2022.01.13 |
[Java] 백준 11948번 과목선택 (0) | 2021.12.30 |