본문 바로가기
프로그래밍/CodeUp

CodeUp[Q_2628] : 케익 자르기

by 조원일 2020. 4. 7.
728x90

1. 문제

https://codeup.kr/problem.php?id=2628

 

케익 자르기

주어진 두 잘린 부분이 교차한다면 "$cross$", 교차하지 않는다면 "$not$ $cross$"를 출력한다.

codeup.kr

[출처 : 코드업(https://codeup.kr/)]

이번 문제는 원형을 두번 자를때 교차가 되는지 안되는지 확인하는 문제입니다.

직접 원형을 그려보고 어떠한 경우에만 교차가 되는지 생각해보면 쉽게 해결할수있습니다.

 

 

2. 풀이방법

STEP 1. b0 < a0 < b1 < a1 인 경우
STEP 2. a0 < b0 < a1 < b1 인 경우

 

 

3. 해답

#include <stdio.h>

void swap(int* a, int* b) {
	int tmp;
	tmp = *a;
	*a = *b;
	*b = tmp;
}

int main() {
	int a[2], b[2];

	scanf("%d %d", &a[0], &a[1]);
	scanf("%d %d", &b[0], &b[1]);

	if (a[0] > a[1]) swap(&a[0], &a[1]);
	if (b[0] > b[1]) swap(&b[0], &b[1]);

	if (a[0] > b[0] && a[0] < b[1] && a[1] > b[1]) {
		// b[0] < a[0] < b[1] < a[1]
		printf("cross");
		return 0;
	} else if (b[0] > a[0] && b[0] < a[1] && b[1] > a[1]) {
		// a[0] < b[0] < a[1] < b[1]
		printf("cross");
		return 0;
	}
	
	printf("not cross");

	return 0;
}

'프로그래밍 > CodeUp' 카테고리의 다른 글

CodeUp[Q_2631] : 보물 찾기  (0) 2020.04.09
CodeUp[Q_2629] : 광역시  (0) 2020.04.08
CodeUp[Q_2610] : 그림판 채우기  (0) 2020.04.05
CodeUp[Q_2607] : 쌍둥이 소수  (0) 2020.04.04
CodeUp[Q_2605] : 캔디팡  (0) 2020.04.03