- STL 사용하면 쉽게 풀 수 있다는 걸 알고 있었지만 일부러 STL을 사용하지 않았습니다. 알고리즘적으로 머리를 쓰는 걸 훈련하기 위해...^^
 
~cpp 
#include <iostream>
#include <string>
using namespace std;
int numOfData;
string inputData[10];
int outputData[10];
string pattern;
int getIndex(char c)
{
	int index;
	index=pattern.find_first_of(c);
	pattern = pattern.substr(0, index) + pattern.substr(index + 1);
	return index;
}
void input()
{
	cin >> numOfData;
	for(int i=0;i<numOfData;i++)
	{
		cin >> inputData[i];
	}
}
void process()
{
	for(int i=0;i<numOfData;i++)
	{
		int index;
		int addNumber = 40320;
		pattern = "abcdefgh";
		for(int j=0;j<8;j++) 
		{
			index = getIndex(inputData[i][j]);
			addNumber /= (8-j);
			outputData[i] += addNumber * index;
		}
		outputData[i]++;
	}
}
void output()
{
	for(int i=0;i<numOfData;i++)
	{
		cout << outputData[i] << endl;
	}
}
void main()
{
	input();
	process();
	output();
}