클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

연산자 1 - 산술연산 문제 코딩테스트 <코드업> 본문

알고리즘 및 자료 관리/알고리즘

연산자 1 - 산술연산 문제 코딩테스트 <코드업>

huenuri 2024. 8. 25. 00:54
두번째로 풀어볼 코딩테스트 문제는 산술 연산이다. 문제는 총 9개인데 너무 많으니 4~5개로 추려서 풀어보려고 한다.
 
문제 난이도는 쉬워보이지만 어떤 자료형에 담느냐에 따라 출력이 달라지니 주의해야 한다.


 

산술연산 문제 풀어보기

🧊 문제 1번 <1039번>

정수 2개 입력받아 합 출력하기2

정수 2개를 입력받아 합을 출력해보자.
단, 입력되는 정수는 -2147483648 ~ +2147483648 이다.

 

#include <stdio.h>

int main(void)
{
	long long int a, b;
	scanf_s("%lld%lld", &a, &b);
	printf("%lld", a + b);

	return 0;
}

 

 

양수와 음수값을 받아서 출력하는 문제이다. 자료형을 int로 출력하면 답이 나오지 않아 무척 힘들게 풀었던 문제이다.
long long int로 담아주어야 한다.



 

 

🧊 문제 2번 <1040번>

 

정수 1개 입력받아 부호 바꿔 출력하기

입력된 정수의 부호를 바꿔 출력해보자.
단, -2147483647 ~ +2147483647 범위의 정수가 입력된다.

#include <stdio.h>

int main(void)
{
	int a;
	scanf_s("%d", &a);
	printf("%d", -a);

	return 0;
}

 

변수 앞에 -부호만 넣어주면 된다.



 

 

🧊 문제 3번 <1041번>

 

문자 1개 입력받아 다음 문자 출력하기

영문자 1개를 입력받아 그 다음 문자를 출력해보자.
영문자 'A'의 다음 문자는 'B'이고, 영문자 '0'의 다음 문자는 '1'이다.

#include <stdio.h>

int main(void)
{
	char ch;

	scanf_s("%c", &ch, 1);
	printf("%c", ch + 1);

	return 0;
}

 

변수를 문자로 선언한 후, 여기에 1을 더하면 다음 영문자가 출력된다.



 

🧊 문제 4번 <1043번>

 

정수 2개 입력받아 나눈 나머지 출력하기

정수 2개(a, b) 를 입력받아 a를 b로 나눈 나머지를 출력해보자.
단, 0 <= a, b <= +2147483647, b는 0이 아니다.

#include <stdio.h>

int main(void)
{
	int a, b, res;
	scanf_s("%d%d", &a, &b);
	res = a % b;
	printf("%d", res);

	return 0;
}

 

몫과 나머지를 출력하는 문제가 있었는데, 비슷한 유형이니 나머지만 구해보았다. % 연산으로 쉽게 풀 수 있다.



 

🧊 문제 5번 <1045번>

 

정수 2개 입력받아 자동 계산하기

정수 2개(a, b)를 입력받아 합, 차, 곱, 몫, 나머지, 나눈 값을 자동으로 계산해보자.
단 0 <= a, b <= 2147483647, b는 0이 아니다.

#include <stdio.h>

int main(void)
{
	int a, b;

	scanf_s("%d%d", &a, &b);
	printf("%d\n", a + b);
	printf("%d\n", a - b);
	printf("%d\n", a * b);
	printf("%d\n", a / b);
	printf("%d\n", a % b);
	printf("%.2lf", (float)a / (float)b);

	return 0;
}

 

10과 3을 6가지 연산으로 구한 문제이다. 다른 건 별로 어렵지 않은데 나누는 데서 잘 막힌다. 소숫점 둘째자리까지 나와야 하므로 .2로 지정하고, 정수를 float형으로 변환해주어야 한다.



 

🧊 문제 6번 <1046번>

 

정수 3개 입력받아 합과 평균 출력하기

정수 3개를 입력받아 합과 평균을 출력해보자.
단, -2147483648 ~ +2147483647

#include <stdio.h>

int main(void)
{
	int a, b, c;
	int sum;
	double avg;

	scanf_s("%d%d%d", &a, &b, &c);
	sum = a + b + c;
	printf("%d\n", sum);
	printf("%.1lf\n", sum/3.0);

	return 0;
}

 

앞의 문제와 큰 차이는 없지만 중요한 문제이니 풀어보았다. 평균을 구할 때는 실수에 담아주어야 하니 double형으로 선언했다.
더하기는 정수이니 그대로 하고, 실수에서만 .0으로 연산하면 알아서 실수 연산이 된다.



 

 

오늘의 두번째 단원 학습을 마치고

 

산술 문제도 이제 자신있게 풀 수 있겠다. 나눗셈 연산을 할 때는 형 변환을 한다는 걸 주의하자.

이제 아침 공부 시간이 30분밖에 남지 않아 무척 아쉽다. 점심시간이 조금 지나더라도 오늘 하려고 했던 세 가지 분야는 꼭 해결해볼 것이다!