PS (C, C++)

[백준/C] 조건문

최연재 2022. 8. 20. 01:41

1330 두 수 비교하기

#include <stdio.h>

int main() {
	int a, b;
	scanf("%d %d", &a, &b);

	if (a > b) printf(">");
	else if (a < b) printf("<");
	else printf("==");

	return 0;
}

9498 시험 성적

#include <stdio.h>
int main()
{
	int a;
	scanf("%d", &a);
	if (a >= 90) printf("A");
	else if (a >= 80) printf("B");
	else if (a >= 70) printf("C");
	else if (a >= 60) printf("D");
	else printf("F");

	return 0;
}

2753 윤년

#include <stdio.h>

int main() 
{
	int year, result = 0;
	scanf("%d", &year);

	if (year % 4 == 0)
	{
		if (year % 100 != 0 || year % 400 == 0) result = 1;
	}

	printf("%d", result);

	return 0;
}

if (year%4 == 0 && (year%100 != 0 || year%400 == 0)) 로 조건문을 간결화할 수 있다.

14681 사분면 고르기

#include <stdio.h>


int main()
{
	int x, y;
	scanf("%d", &x);
	scanf("%d", &y);
	
	if (x > 0 && y > 0) printf("1");
	else if (x < 0 && y > 0) printf("2");
	else if (x < 0 && y < 0) printf("3");
	else  printf("4");

	return 0;
}

2884 알람 시계

#include <stdio.h>
int main()
{
	int a, b;
	scanf("%d %d", &a, &b);

	if (b < 45)
	{
		if (a == 0) a = 24;
		a--;
		b += 60;
	}

	printf("%d %d", a, b - 45);
}

입력된 시간에서 분이 45분 이상이면 상관없지만 45분 미만일 때는 고려해야 할 것들이 있다. 

0시일 경우에는 24시가 되도록 하고, 시에서 -1을 한 후  분은 음수가 될 수 없으므로 60분을 더한다. 

2525 오븐 시계

#include <stdio.h>

int main()
{
	int a, b, c;
	scanf("%d %d", &a, &b);
	scanf("%d", &c);

	if (b + c >= 60)
	{
		a += (b + c) / 60;
		b = (b + c) % 60;

		if (a >= 24) a -= 24;
	}
	else b += c;

	printf("%d %d", a, b);
	return 0;
}

b+c의 값이 60분을 넘는다면 시가 1 증가해야 하기 때문에 나눈 몫을 a에 더해준다. 

만약 a가 24가 넘는다면 24를 빼서 0~23 사이의 값이 되게 한다. 

2480 주사위 세개

#include <stdio.h>

int findMax(int a, int b, int c)
{
	if (a > b)
	{
		if (a > c) return a;
		else return c;
	}
	else
	{
		if (b > c) return b;
		else return c;
	}
}

int main()
{
	int a, b, c;
	scanf("%d %d %d", &a, &b, &c);

	if ((a == b) && (b == c)) printf("%d", 10000 + a * 1000);
	else 
	{
		if ((a == b) && (b != c)) printf("%d", 1000 + a * 100);
		else if ((a == c) && (a != b)) printf("%d", 1000 + a * 100);
		else if ((b == c) && (a != b)) printf("%d", 1000 + b * 100);
		else printf("%d", findMax(a, b, c) * 100);
	}
	return 0;
}

같은 값이 나온 경우에는 각각의 식에 대입해서 결과를 계산해 출력한다. 

같은 값이 없는 경우에는 최댓값을 찾아야 하기 때문에 findMax 함수를 선언해서 최댓값을 찾아 반환한 후 결과를 계산해 출력한다. 

'PS (C, C++)' 카테고리의 다른 글

[백준/C] 1차원 배열  (0) 2022.08.20
[백준/C] 반복문  (0) 2022.08.20
[백준/C] 입출력과 사칙연산  (0) 2022.08.20
[백준/c] 1292 쉽게 푸는 문제  (0) 2022.08.20
[백준/C] 1193 분수찾기  (0) 2022.08.19