되는대로 살자

[C언어 기출문제&풀이] 나머지 에 관한 문제 본문

2009~2014/C/C++

[C언어 기출문제&풀이] 나머지 에 관한 문제

malu 2011. 8. 11. 21:53
프로그램 명: coci_modulo
제한시간: 1 초

두 정수 A,B 가 주어질 때 A modulo B 는 A 를 B 로 나눌 때의 나머지이다. 예를 들어 7,14,27,38 은 3으로 나눌 때 나머지가 각각 1,2,0,2 이다.

문제는 10 개의 수를 입력으로 받아 42 로 나눌 때 나오는 나머지의 서로다른 갯수를 알아내는 것이다.

입력

1000 보다 적은 10 개의 양의 정수가 입력으로 주어진다.

출력

나올 수 있는 나머지의 서로다른 갯수를 출력한다.

입출력 예

입력

1
2
3
4
5
6
7
8
9
10

출력

10

입력

42
84
252
420
840
126
42
84
420
126

출력

1

입력

39
40
41
42
43
44
82
83
84
85

출력

6
출처:coci 2005/2006 contest1 1

풀이 : 나머지를 구하는 방법은 아시죠? %연산자를 이용하면 됩니다. 42미만일 경우에는 그대로 값을 저장하시고
4 그 이상일 경우에는 42로 나눈 나머지의 값을 배열에 저장합니다.
그 다음 할 방법은 이 나머지가 모여있는 배열에 대하여 중복되지 않는 값의 수를 조사하는 겁니다.
방법은 다음과 같습니다.
1. 모든 인자를 순회한다.
2. 그 속에 1의 루프변수만큼 인자를 순회하여 배열[2]==배열[1] 이 되면 카운터를 증가시키지않는다.
이 방법이라면 중복되는 수를 한번만 체크할 수 있게 됩니다. !