728x90
728x90
문제
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.
상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.
두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다.
출력
첫째 줄에 상수의 대답을 출력한다.
예제 입력 1
734 893
예제 출력 1
437
예제 입력 2
221 231
예제 출력 2
132
예제 입력 3
839 237
예제 출력 3
938
출처
Contest > Croatian Open Competition in Informatics > COCI 2009/2010 > Contest #3 1번
- 문제를 번역한 사람: baekjoon
- 문제의 오타를 찾은 사람: eric00513, identity1978, jongfighter, pkcchoi3
- 데이터를 추가한 사람: ssuu0216
알고리즘 분류
- 수학
- 구현
문제 출처
https://www.acmicpc.net/problem/2908
문제 해결 방법
두 문자열을 입력 받은 후, 첫 번째 자리 문자와 세 번째 자리 문자의 값을 변경한 후, 변경한 값들을 int 형으로 자료형을 변환하여(stoi() 함수 사용) 그 중 큰 값이 출력되도록 하여 문제를 해결하였다.
첫 번째 자리 문자와 세 번째 자리 문자의 값을 변경하기 위해 char 형 tmp 변수를 사용하였다.
코드
#include <iostream>
#include <string>
using namespace std;
#define SIZE 3
int main() {
cin.tie(NULL);
cout.tie(NULL);
ios_base::sync_with_stdio(false);
string A, B;
char tmp;
int a, b;
cin >> A >> B;
// Switch the first number and the last number of the string (ABC -> CBA)
tmp = A[0];
A[0] = A[SIZE - 1];
A[SIZE - 1] = tmp;
tmp = B[0];
B[0] = B[SIZE - 1];
B[SIZE - 1] = tmp;
// Make string to integer
a = stoi(A);
b = stoi(B);
if (a > b) {
cout << a << endl;
}
else {
cout << b << endl;
}
return 0;
}
채점 결과
참고
- [단계별로 풀어보기] > [문자열]
728x90
728x90
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ-1712][C++] 손익 분기점 (0) | 2022.08.27 |
---|---|
[BOJ-1316][C++] 그룹 단어 체커 (0) | 2022.08.24 |
[BOJ-2941][C++] 크로아티아 알파벳 (0) | 2022.08.24 |
[BOJ-5622][C++] 다이얼 (0) | 2022.08.24 |
[BOJ-1152][C++] 단어의 개수 (0) | 2022.08.24 |
[BOJ-1157][C++] 단어 공부 (0) | 2022.08.24 |
[BOJ-25304][C++] 영수증 (0) | 2022.08.24 |
[BOJ-3003][C++] 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2022.08.24 |