컴퓨터공학/알고리즘 _ 문제해결

백준 11024번 더하기 4

saurus2 2017. 1. 29. 19:53

https://www.acmicpc.net/problem/11024

더하기 4 에서 

https://www.acmicpc.net/problem/11023

더하기 3 처럼 EOF 처리만 해주면 '\n' 개행 문자 때문에 

테스트 케이스 만큼 반복문을 처리하지 못하고 첫 케이스에서 

문자를 다먹어 버린다. 



소스보기

#include <iostream>

using namespace std;

int main(){

    int sum=0,t=0,temp=0;

    char ar[101];

    cin >> t;

    //테스트 케이스 입력

    cin.ignore();

    //t 입력하면서 버퍼에 입력된 개행문자 제거

    while(t--){

        cin.getline(ar,100,'\n');

        for(int i=0; i<strlen(ar); i++){

            while(ar[i]!=' ' && ar[i] != '\0'){

                //문장의 공백이나 숫자가 아닐때까지 반복

                temp *= 10;

                temp += ar[i] -'0';

                i++;

                //숫자가 1 자리 이상일때 10 곱하는 작업을 반복해 2자리 이상의 숫자도 더해줘야함 

            }

            sum += temp;

            temp = 0;

            //문자로 숫자를 바꿨을때 48 빼서 계산

        }

        memset(ar,0,sizeof(ar));

        //배열을 초기화

        cout << sum << endl;

        sum = 0;

    }

    return 0;

}