자료구조&알고리즘/백준

[C++] 백준 1357번 - 뒤집힌 덧셈

celinayk 2023. 7. 5. 18:37
반응형

문제

어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev(X) = 1이다.
두 양의 정수 X와 Y가 주어졌을 때, Rev(Rev(X) + Rev(Y))를 구하는 프로그램을 작성하시오

입력

첫째 줄에 수 X와 Y가 주어진다. X와 Y는 1,000보다 작거나 같은 자연수이다.

 

출력

첫째 줄에 문제의 정답을 출력한다.

접근

단순하게 string이랑 int변환만 하면 쉬움

예를 들어 450 689 : string으로 입력받음 

=> 054 986 : reverse함수써서 뒤집음

=> 54 986 : stoi함수를 써서 숫자로 변경(이걸 해주는 이유는 만약 001이렇게 될경우 stoi를 쓰면 1이됨)

=> 1040 : 숫자끼리 더해줌, 다시 to_string으로 문자로 바꿈 

=> 0410 : 바꿔야 뒤집을 수 있음 다시 뒤집음 reverse로

=> 410 : stoi로 다시 int형으로 변환

 

이렇게 해주면 끝

 

코드

#define _CRT_SECURE_NO_WARNINGS
#include <iostream> 
#include <limits.h>
#include <algorithm>
#include <string>
#include <vector>
#include <math.h>
#include <cmath>
#include <cstring>
using namespace std;


int main() {

	string x;
	string y;

	cin >> x;
	cin >> y;

	reverse(x.begin(), x.end());
	reverse(y.begin(), y.end());

	int xx = stoi(x);
	int yy = stoi(y);

	int sum = xx + yy;

	string ans = to_string(sum);

	reverse(ans.begin(), ans.end());

	int ans_ = stoi(ans);

	cout << ans_;


	return 0;

}

출처 

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

 

1357번: 뒤집힌 덧셈

어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev(

www.acmicpc.net

 

댓글수0