Training/BOJ

[C++] 3052 나머지

FATKITTY 2020. 8. 3. 18:12
반응형

 

배열 in_arr 에 숫자 10개를 차례대로 입력받고 저장한다.

배열 re_arr 에 in_arr 의 원소들을 각각 42로 나눈 나머지를 차례대로 저장한다.

re_arr 를 오름차순으로 sort 한다.

check 라는 변수를 만들고, re_arr의 첫번째 원소를 할당해준다.

re_arr 의 두번째 원소부터 차례대로 check 와 같은 값을 가지는지 아닌지 확인을 해본다.

같은 값이 아니라면 cases 값을 하나 증가시켜 준 뒤,

check 값은 비교결과가 같지 않았던 그 re_arr의 원소 값으로 다시 할당해준다.

앞의 과정을 re_arr 의 모든 원소에 대해서 반복한다.

비교가 끝났다면 cases 값을 출력한다.

 

#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
	int* in_arr = new int[10];
	int* re_arr = new int[10];
	int cases = 1;
	
	for (int i = 0; i < 10; i++) cin >> in_arr[i];
	for (int j = 0; j < 10; j++) re_arr[j] = in_arr[j] % 42;
	sort(re_arr, re_arr + 10);
	int check = re_arr[0];
	for (int k = 1; k < 10; k++) {
		if (re_arr[k] != check) {
			cases++;
			check = re_arr[k];
		}
	}

	cout << cases << endl;

	return 0;
}

 

반응형

'Training > BOJ' 카테고리의 다른 글

[C++] 2869 달팽이는 올라가고 싶다  (0) 2020.08.08
[C++] 8958 OX퀴즈  (0) 2020.08.03
[C++] 2577 숫자의 개수  (0) 2020.08.03
[C++] 2562 최댓값  (1) 2020.08.03
[C++] 11720 숫자의 합  (0) 2020.07.20