https://www.acmicpc.net/problem/2908
2908번: 상수
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두
www.acmicpc.net
0. 알고리즘 분류
문자열, 구현
1. 문제
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다. 두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.
2. 풀이
방법은 다양하지만, 문자열로 받고 시작한다면 조금 머리가 아프다. 문자열을 뒤집어서 int로 타입을 바꿔주거나 해야한다. 필자는 두 수의 끝자리부터 크기 비교를 한 후, 더 큰 수를 역순으로 출력하는 방식을 사용했다.
3. 코드
#include <iostream>
#include <string>
using namespace std;
int main(void) {
string x, y;
cin >> x >> y;
string ans;
for (int i = 2; i >= 0; i--) {
if (x[i] > y[i]) {
ans = x;
break;
}
else if (x[i] < y[i]) {
ans = y;
break;
}
}
cout << ans[2] << ans[1] << ans[0] << endl;
return 0;
}
'IT > BOJ 문제정리' 카테고리의 다른 글
백준 2839번: 설탕 배달 (0) | 2021.07.06 |
---|---|
백준 1003번: 피보나치 함수 (0) | 2021.07.06 |
백준 18127번: 모형결정 (0) | 2021.07.05 |
백준 10809번: 알파벳 찾기 (0) | 2021.07.05 |
백준 1065번: 한수 (0) | 2021.07.05 |