- 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();
}