💻STUDY/BOJ

[BOJ] 1357. 뒤집힌 덧셈 (C)

coldNoodlePigeon 2022. 3. 12.
  • 코딩 초보

1357. 뒤집힌 덧셈

 

어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev(X) = 1이다.

두 양의 정수 X와 Y가 주어졌을 때, Rev(Rev(X) + Rev(Y))를 구하는 프로그램을 작성하시오

 

첫째 줄에 수 X와 Y가 주어진다. X와 Y는 1,000보다 작거나 같은 자연수이다.

 

첫째 줄에 문제의 정답을 출력한다.

 


#include <stdio.h>

int rev(int n) {
	if (n < 10) return n;
	else if (n < 100) {
		n = (n % 10) * 10 + n / 10;
		return n;
	}
	else if (n < 1000) {
		n = ((n % 100) % 10) * 100 + ((n % 100) / 10) * 10 + n / 100;
		return n;
	}
	else if (n >= 1000) {
		n = n / 1000 + ((n % 1000) / 100) * 10 + (((n % 1000) % 100) / 10) * 100 + (((n % 1000) % 100) % 10) * 1000;
		return n;
	}
}

main() {
	int x, y;
	scanf("%d %d", &x, &y);
	printf("%d", rev(rev(x)+rev(y)));
}

int rev(int n) 함수를 만들어서 처리했다. 

입력은 무조건 1000이하의 정수이지만 rev(rev(x)+rev(y))를 할때 1000보다 큰 정수가 int rev()의 매개변수 값으로 들어올 수 있음을 주의한다. 

'💻STUDY > BOJ' 카테고리의 다른 글

[BOJ] 11729. 하노이 탑 이동 순서 (Python)  (0) 2022.03.14
[BOJ] 2161. 카드1 (C)  (0) 2022.03.13
[BOJ] 5585. 거스름돈 (C)  (0) 2022.03.10
[BOJ] 14647. 준오는 조류 혐오야! (C)  (0) 2022.03.09
[BOJ] 9093. 단어 뒤집기 (C)  (0) 2022.03.08

댓글