반응형
풀이
#include <iostream>
#include <string>
using namespace std;
int main()
{
string a, b;
cin >> a >> b;
string res;
for (int i = 2; i >= 0; i--)
{
if (a[i] > b[i])
{
res = a;
break;
}
else if (a[i] < b[i])
{
res = b;
break;
}
else
continue;
}
for (int i = 2; i >= 0; i--)
{
cout << res[i];
}
}
어떻게 풀지 고민이 조금 되었던 문제였습니다.
종이에 써보면서 문제의 방향성을 찾아나갔습니다. 먼저 문자열 string a, b를 선언해주었습니다.
이 문제에서는 두 수를 입력받은 후 거꾸로 해서 큰 수가 나오게 하는 것이었습니다. 처음에는 해당 수들을 바꿔준 다음에 비교를 통해 풀까 생각해봤지만 방법이 조금 복잡해질 것 같아서 다른 방법을 생각해낸 것이 바로 for문을 역순으로 해서 비교를 하는 것이었습니다.
for문 비교문
먼저 for문을 사용하면서 뒤에서부터 a와 b를 비교하면서 큰 값이 나오면 for문을 벗어나서 a값 전체를 res가 받도록 만들어주었습니다.
a[0] a[1] a[2]는 하나하나 비교를 할테지만 이것은 배열이 아니기 때문에 res = a를 하면 a의 전체값이 나오기 때문입니다.
for (int i = 2; i >= 0; i--)
{
if (a[i] > b[i])
{
res = a;
break;
}
else if (a[i] < b[i])
{
res = b;
break;
}
else
continue;
}
이런식으로 if문을 써주었습니다. else continue는 하지 않아서 정상적으로 작동은 하지만 깔끔함을 위해 추가했습니다.
그리고 마지막에는 for문을 통해 res[i]를 반복하도록 했습니다. 이때 a의 값은 거꾸로 적히지 않은 값이기 때문에 for문을 통해 거꾸로 출력되게 해주는 것입니다.
이렇게 풀면 문제가 끝납니다.
반응형
'IT 프로그래밍 > 백준' 카테고리의 다른 글
[C++] 백준 3003 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2024.03.25 |
---|---|
[C++] 백준 5622 다이얼 (0) | 2024.03.25 |
[C++] 백준 2675 문자열 반복 (0) | 2024.03.22 |
[C++] 11654 ASCII 코드 (0) | 2024.03.20 |
[C++] 백준 9086 문자열 (0) | 2024.03.20 |