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

CodeUp[Q_2005] : 잉여계

by 조원일 2020. 2. 5.
728x90

1. 문제

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

 

잉여계

집합 A가 정수 m에 대한 잉여계이면 "yes", 아니면 "no"를 출력하시오.

codeup.kr

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

이번 문제는 n개의 정수를 입력받아 임의의 두 수의 차가 m으로 나누어 떨어지면 "no"를 출력하고 

모두 나누어 떨어지지 않으면 "yes"를 출력하는 문제입니다.

 

2. 해답

#include <stdio.h>

int main() {
	int Arr[150];
	int n, m;

	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%d", &Arr[i]);
	}
	scanf("%d", &m);

	for (int i = 0; i < n - 1; i++) {
		for (int j = i + 1; j < n; j++) {
			if (Arr[i] > Arr[j]) {
				if ((Arr[i] - Arr[j]) % m == 0) {
					printf("no"); // 두 수의 차가 m으로 나누어 떨어지면 "no"를 출력하고 끝내기
					return 0;
				}
			}
			else if (Arr[i] < Arr[j]) {
				if ((Arr[j] - Arr[i]) % m == 0) {
					printf("no"); // 두 수의 차가 m으로 나누어 떨어지면 "no"를 출력하고 끝내기
					return 0;
				}
			}
		}
	}
	// 두 수의 차가 모두 m으로 나누어 떨어지지 않으면 "yes"를 출력하고 끝내기
	printf("yes");
	return 0;
}