본문 바로가기

백준

2355 시그마

문제를 보자마자 입력 사이즈 떄문에 문제가 생기겠다는 생각이 들었고

두번째로 시간도 얼마 주지 않으므로 수학 공식을 써야 겠다고 느낌이 왔다. 

 

저 등차수열의 합 공식이 기억 안 나서 검색해서 찾았다. 내가 이 공식을 다시 보게 될줄이야.

 

#include <iostream>
#include <algorithm>

using namespace std;
using i64 = long long;

int main() {
    i64 a, l, n;
    scanf("%lld", &a, &l);   
    printf("%lld", (max(a, l) - min(a, l) + 1)*(a+l)/2);
}

 

처음에 코드를 이렇게 작성했다. 그런데 값이 너무 크고 이상하게 나와서 난 max 함수가 문제있는 줄 알았다. 

아.. 얘가 int형만 인자로 받아서 long long 타입을 넣어서 그렇구나.. 했는데 알고보니 scanf를 하나만 받아서 쓰래기값이 계산된 거였다. 

 

#include <iostream>
#include <algorithm>

using namespace std;
using i64 = long long;

int main() {
    i64 a, l;
    scanf("%lld %lld", &a, &l);
    printf("%lld", (max(a, l) - min(a, l) + 1)*(a+l)/2);
}

 

다시 수정했다.

max - min값은 수열의 개수를 구하기 위함이다

 

 

'백준' 카테고리의 다른 글

16673 고려대에는 공식 와인이 있다  (0) 2019.10.02
1297 TV크기  (0) 2019.10.02
10707 수도요금  (0) 2019.10.01
5532 방학 숙제  (0) 2019.09.30
10162 전자레인지  (0) 2019.09.30