알고리즘 그룹을 만드려고 하니 50문제를 풀어야만 만들 수 있다고 한다. 하필 49문제였다. 급하게 쉬운 문제 찾아본다고 풀어본 것이다.
문제
상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다. 두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.
예시 입력
734 893
예시 출력
437
알고리즘
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(void)
{
string a, b;
cin >> a >> b;
if (a.size() == 3 and b.size() == 3)
{
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
if (a > b)
cout << a;
else
cout << b;
}
return 0;
}
숫자를 int 형으로 받지 않고 string으로 받았다. 문자의 길이를 확인할 수 있는 size() 함수를 사용하기 위해서.
이후 문자열을 뒤집는 reverse 함수를 사용하여 문자열을 플립하였다. reverse 함수는 #include <alogrithm>를 선언하여 사용할 수 있다.
특이사항은 숫자 비교를 위해서 int 형으로 바꾸어야 할 것이라 생각했는데 그러지 않아도 동작함.
'Computer Science > 백준 알고리즘' 카테고리의 다른 글
[백준] 1010번 다리 놓기 (파이썬) (0) | 2022.03.08 |
---|---|
[백준 알고리즘] 1913번 달팽이 (C++) (0) | 2021.11.09 |
[알고리즘] N 계단 오르기 (0) | 2021.10.20 |
알고리즘 시험 정리 (0) | 2020.03.04 |
쉬트라센 알고리즘 (Strassen Algorithm) (0) | 2020.03.04 |