군대에서_코딩하기_알고리즘_9

신태원·2021년 6월 4일
0

군대에서_코딩하기

목록 보기
10/30
post-thumbnail

얼마전 병원진료때문에 4박5일 휴가를 다녀오고 2주간의 격리를 해서 지금에야 다시 알고리즘 공부를 시작한다.. 7월말에 아마 또 다녀와야되지만, 다시 열심히 해보겠다..

우선 오늘 문제는 너무 쉬웠어가지고,,올릴까 말까하다가 격리 후 첫 문제니까 올리겠다..
자연수 N이 주어지면 N번 만큼 num과 sum을 입력받고, 1~num 의 합이 sum과 맞냐, 안맞냐 를 구하는 문제다.
제일 중요한건 1~n 까지의 합을 구하는건데, 사실 이건 고등학교 수학을 조그만 열심히 했고, n(n+1)/2 라는 방정식을 아냐 모르냐에 따라 이 문제가 런타임 에러가 나냐 안나냐가 갈린다.
코드는 다음과 같다.

#include<iostream>

using namespace std;

int main(){
    
    int N, i, num, answ, result;
    
    cin>>N;
    
    for(i=0; i<N; i++){
        cin>>num;
        cin>>answ;
        
        result = (num)*(num+1)/2;
        if(result == answ){
            cout<<"YES"<<endl;
        }
        else{
            cout<<"NO"<<endl;
        }
    }
}

코드 설명은 너무 쉬워서 생략하겠다.. 그냥 위에서 말했듯이 n(n+1)/2 라는 방정식만 알고있으면 된다.. 이 방정식은 매우 유용하게 다양한곳에서 쓰이니 꼭 알아두자

profile
일단 배우는거만 정리해보자 차근차근,,

0개의 댓글