https://www.acmicpc.net/problem/1357
1357번: 뒤집힌 덧셈
어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev(
www.acmicpc.net
c++로 백준 1357번 문제를 풀어보겠다.
문제
어떤 수 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 복사
123 100
예제 출력 1 복사
223
<문제 풀이>
처음에 작성한 코드는 다음과 같다.

논리적으로는 문제가 없을 거라고 생각했으나 백준 사이트에서는 "틀렸습니다"라고 떴다.
visual studio에서는 컴파일에러라고 코드가 잘 돌아가지 않았다.
이를 해결하기 위해 다른 방법으로 문제를 풀었다.
구글링을 통해 #include <algorithm>에서 "reverse()"함수를 알게 되었고, 이를 통해 해결했다.
1. string 문자열 X, Y를 입력받는다.
2. #include 에서 "reverse()"함수를 불러와 X, Y를 역순으로 바꿔준다.
3. stoi()함수를 통해 문자열 X, Y를 int형으로 바꿔 더한다.
4. int형이 된 X+Y값을 다시 "reverse()"함수를 쓰기 위해 string으로 바꿔준다.
5. string형의 X+Y 값에 "reverse()"함수를 불러와 X+Y를 역순으로 바꿔준다.
6. 계산한 최종 값을 출력한다.
'C++' 카테고리의 다른 글
[백준 알고리즘] 11365번 : !밀비 급일, c++ (0) | 2022.03.01 |
---|---|
[백준 알고리즘] 11170번 : 0의 개수, c++ (0) | 2022.03.01 |
[백준 알고리즘] 10768번 : 특별한 날, c++ (0) | 2022.02.28 |
[백준 알고리즘] 1871번 : 좋은 자동차 번호판, c++ (0) | 2022.02.28 |
[백준 알고리즘] 11655번 : ROT13, c++ (0) | 2022.02.28 |