본문 바로가기

cospro2급/cospro_6차

2021-05-29 / 8번 문제

주어진 수와 뒤집은 수의 차 구하기

 

문제 설명

주어진 수와 주어진 수를 뒤집은 수와의 차를 계산하려 한다.

예를 들어 주어진 수가 120인 경우 이를 뒤집으면 021이다. 십진수에서 앞의 0은 제거해야하므로 120을 뒤집은 수는 21이다. 따라서 120과 21의 차는 99이다. 

이를 계산하기 위해 다음과 같이 프로그램 구조를 작성했다.

 

  1. 주어진 자릿수를 구한다.

  2. 구한 자릿수를 이용하여 주어진 수를 거꾸로 뒤집는다.

  3. 주어진 수와 뒤집은 수의 차이를 구한다.

 

수 number가 주어질 때, 주어진 수와 주어진 수를 뒤집은 수와의 차를 return 하는 solution 함수를 완성한다.

 

매개변수 설명

수 number가 solution 함수의 매개변수로 주어진다.

  수 number는 1 이상 10000 이하인 정수이다.

 

return 값 설명

주어진 수 number와 number를 뒤집은 수와의 차를 return 한다.

 

예시

예제 1) 

주어진 수가 120인 경우 이를 뒤집으면 021이다. 십진수에서 앞의 0은 제거해야하므로 120을 뒤집은 수는 21이다. 따라서 120과 21의 차는 99이다. 

예제 2)

23을 반대로 뒤집으면 21가 되고 두 수의 차는 9이다. 

 

코드 설명

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

//차를 구할 땐 큰수에서 작은 수를 빼야하므로 더 큰수를 찾는다.
//이땐 원래의 수와 뒤집은 수를 매개변수로 준다.
int func_a(int number1, int number2) {
	int ret = 0;

	if(number1 > number2)
		ret = number1 - number2;
	else
		ret = number2 - number1;

	return ret;
}

//자릿수 구하기
//number를 매개변수로 준다.
int func_b(int number) {
	int ret = 0;

	while(number != 0) {
		number = number / 10;
		ret++;
	}

	return ret;
}

//뒤집은 수를 구한다.
//number와 자릿수를 매개변수로 준다.
int func_c(int number, int digit) {
	int ret = 0;

	for(int i = 0; i < digit; i++) {
		int temp = number % 10;
		number = number / 10;
		ret = ret * 10 + temp;
	}

	return ret;
}

int solution(int number) {
    int answer = 0;
    int digit = func_b(number);
    int convert_number = func_c(number,digit);
    answer = func_a(number,convert_number);
    return answer;
}

int main() {
	int number1 = 120;
	int ret1 = solution(number1);

	printf("solution 함수의 반환 값은 %d 입니다.\n", ret1);

	int number2 = 23;
	int ret2 = solution(number2);

	printf("solution 함수의 반환 값은 %d 입니다.\n", ret2);
}

 

 

 

goorm

구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.

www.goorm.io

 

 

'cospro2급 > cospro_6차' 카테고리의 다른 글

2021-05-30 / 5번 문제  (0) 2021.05.30
2021-05-30 / 10번 문제  (0) 2021.05.30
2021-05-29 / 3번 문제  (0) 2021.05.29
2021-05-28 / 2번 문제  (0) 2021.05.28
2021-05-28 / 1번 문제  (0) 2021.05.28