코드 공부

백준 10824번 c++

유스베리이 2023. 5. 9. 14:53

처음에는 A , B, C, D 를 string 값으로 입력 받아서 문자열을 합하고 문자열을 int형으로 변환하여 출력하는 방식을 생각했다.  그래서 문자열을 합칠 수 있도록 <sstream> 을 이용하는 방법을 택하였다. 

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main() 
{
	string A, B, C, D;
	string ab;
	string cd;
	int sum1;
	int sum2;

	
	stringstream ss;
	stringstream SS;


	cin >> A >> B >> C >> D;
	

	/*ab = A + B;
	cd = C + D;*/
	

	ss <<A<<B;
	ss >> sum1;

	SS <<C<<D;
	SS >> sum2;

	cout << sum1 + sum2;



	return 0;
}

하지만 이 방법은 수가 커질 수록 int형에 저장하지 못해서 숫자가 크면 오류가 떴다. 그래서 다른 방법을 찾아보던 중 

stoll 함수를 이용하는 방법을 알아냈다.

 

c++ 에서 string 타입의 문자열을 숫자로 바꾸는 함수이다.

 

stoi string to int
stof string to float
stol string to long
stod string to double
stoll string to long long

여기서 int 형으로 받기에는 범위를 넘어가면 오류가 생기므로 stoll 함수를 이용하는 방법을 선택했다.

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main() 
{
	string A, B, C, D;
	string ab;
	string cd;
	

	


	cin >> A >> B >> C >> D;
	

	/*ab = A + B;
	cd = C + D;*/
	string SUM1 = A + B;
	string SUM2= C + D;
	long long SUM = stoll(SUM1) + stoll(SUM2);



	cout << SUM;








	return 0;
}