자료구조&알고리즘/백준
[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