본문 바로가기
알고리즘/SWEA

[SWEA] 7728. 다양성 측정

by hyerann 2019. 6. 29.

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWq40NEKLyADFARG&categoryId=AWq40NEKLyADFARG&categoryType=CODE&&&

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

www.swexpertacademy.com

10씩 나눠서 나머지를 구하면서 각 자릿수를 구한다.

그리고 해당 자릿수를 index로 가지는 boolean 타입 배열의 값을 true로 변경한다.

그러면 한번이라도 해당 숫자가 발견되면 해당 숫자를 index로 가지는 배열의 값이 true가 되므로, 배열을 돌면서 true인 index의 개수를 구하면 된다.

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

int T, input, rest;

int main() {
	cin.tie(0); ios::sync_with_stdio(0);

	cin >> T;

	for (int tc = 1; tc <= T; tc++) {
		cin >> input;
		cout << '#' << tc << ' ' << getAnswer() << "\n";
	}

	return 0;
}

int getAnswer() {
	int result = 0;

	bool checkArr[10] = { false };

	while (1) {
		rest = input % 10;
		checkArr[rest] = true;
		if (input / 10 == 0) {
			break;
		}
		else {
			input = input / 10;
		}
	}

	for (int idx = 0; idx < 10; idx++) {
		if (checkArr[idx] == true) result++;
	}

	return result;
}

댓글