본문 바로가기
프로그래밍 ( Programming )/백준 알고리즘 (BaekJoon Algorithm)

3052번 - 나머지 (백준 알고리즘/C++)

by Jayce_choi 2020. 11. 25.
반응형
 

3052번: 나머지

39, 40, 41, 42, 43, 44, 82, 83, 84, 85를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 모두 6개가 있다.

www.acmicpc.net

문제 : 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
두 자연수 A와 B가 있을 때, A% B는 A를 B로 나눈 나머지이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.

수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다.

입력 : 첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다.
        이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.

출력 : 첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.

 

 

 


#include<iostream>
using namespace std;
int main()
{
	int arr[10] = { 0, };
	int count = 0;
	int Temp = 0;

	for (int i = 0;i < 10;i++)
	{
		cin >> Temp;
		arr[i] = Temp % 42;
	}
	for (int i = 0;i < 10;i++)
	{
		count++;
		for (int j = 0;j < 10; j++)
		{
			if (i<j && arr[i] == arr[j])
			{
				count--;
				break;
			}
		}
	}
	cout << count << endl;
	return 0; 
}

중요 포인트 
 - 나머지 중에서 같은 것이 있는지를 체크할 때 자기 자신과 이전 수에 대한 중복 체크를 방지하기 위해서 i <j 조건이 필요.
 

먼저 입력을 받은 수를 42로 나눈 나머지 값을 배열에 저장한다.
그 후 초기 count를 증가시키고 만약 내부 반복문 안에서 같은게 체크가 될 때 빼기 연산을 진행한다. 

반응형

댓글