알고리즘/백준
[C++] 백준 2908번 - 상수 & Class1 후기
Esunn
2022. 7. 27. 02:17
https://www.acmicpc.net/problem/2908
두세 자리 수가 주어지고 이 수를 뒤집어서 읽은 후 큰 쪽을 출력하는 문제이다.
예를 들어 461 342 가 주어지면 164와 243을 비교하는 식의 문제이다.
#include <iostream>
using namespace std;
int k;
int change(int x, int y) {
k = y;
if (y == 0) return 0;
return (x % 10 * k) + change( x /10, k / 10);
}
int main() {
int a, b;
cin >> a >> b;
int a2 = change(a, 100);
int b2 = change(b, 100);
if (a2 > b2) cout << a2;
else cout << b2;
}
사실문제가 세 자리 수만 주기 때문에 뒤집는 부분을 전부 직접 해도 되지만
재귀를 토해 구현을 하고 싶어서 재귀 함수를 만들어서 써봤다.
수를 뒤집기만 한다면 다른 건 딱히 없다.
두 수를 비교해서 큰 수를 출력해준다.
Class 1 문제 후기
이 글을 끝으로 Class 1문제는 전부 다 풀었다.
Class 1은 알고리즘 개념보다 기본적인 프로그래밍의 기초들이 많았던 것 같다.
함수, 배열, 문자열, 연산 등등 프로그래밍의 기본을 다질 수 있었다.
Class 2 문제부터는 다른 알고리즘 개념들을 알아야 하는 문제인 것 같다.
공부할게 많아지는 소리가 여기까지 들린다.
이제 어려운 문제들의 연속일 것 같다.
Class 1에서는 문자열을 많이 다뤄봐서 좋았다.
c와 c++을 배우면서 string 자료형을 별로 안 써봤는데
문제를 풀면서 많이 접했던 것 같다.
백준으로 PS 문제를 처음 접해본 나에게는 조금 어렵기도 했지만
푸는 과정과 맞췄을 때의 성취감이 좋았다.
더 어려운 문제들도 풀어보러 가야겠다.