728x90
반응형
뒤집힌 덧셈 성공
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
2 초 | 128 MB | 17868 | 9060 | 7936 | 51.236% |
문제
어떤 수 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보다 작거나 같은 자연수이다.
출력
첫째 줄에 문제의 정답을 출력한다.
과정
간단한 브론즈 1 문제인데, 너무 복잡하게 풀었나 싶기도...
숫자를 문자로 취급하고 자릿수에 따라 제곱연산을 해 주면서 스택을 이용해서 단어뒤집기 때와 비슷하게 풀었다.
마지막 자리가 0으로 끝나지 않게 제거 해 준다.
결과
//
// Created by 전시은 on 2023/03/11.
//
// 문제 :: 뒤집힌 덧셈
// 링크 :: https://www.acmicpc.net/problem/2309
// 입력 :: 첫째 줄에 수 X와 Y가 주어진다. X와 Y는 1,000보다 작거나 같은 자연수이다.
// 출력 :: 째 줄에 문제의 정답을 출력한다.
#include "../Problems.h"
#include <iostream>
#include <string>
#include <stack>
#include <cmath>
#include <algorithm>
using namespace std;
//int main()
int Solve1357()
{
cout << "[디버깅용] Solve1357 :: 시작지점 >> \n";
cin.tie(NULL);
ios_base::sync_with_stdio(false);
string sInput;
stack<char> cInput;
int nSum = 0;
for(int i = 0; i < 2; i++)
{
cin >> sInput;
for(int j = 0; j < sInput.size(); j++)
{
cInput.push(sInput.at(j));
}
for(int j = 0; j < sInput.size(); j++)
{
nSum += (cInput.top() - '0') * pow(10, sInput.size() - j - 1);
cInput.pop();
}
}
sInput = to_string(nSum);
while(sInput.at(sInput.size()-1) == '0')
{
sInput.pop_back();
}
reverse(sInput.begin(), sInput.end());
cout << sInput;
return 0;
}
728x90
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘] 녹색 옷 입은 애가 젤다지? - 백준 4485 (0) | 2023.03.17 |
---|---|
[알고리즘] 과제 안 내신 분..? - 백준 5597 (0) | 2023.03.17 |
[알고리즘] 단어순서 뒤집기 - 백준 12605 (2) | 2023.03.14 |
[알고리즘] 2진수 8진수 - 백준 1373 (0) | 2023.03.12 |
[알고리즘] 일곱 난쟁이 - 백준 2309 (0) | 2023.03.11 |