문제
링크
풀이
#include <iostream>
#include <string>
using namespace std;
bool solve(void) {
string s;
cin >> s;
if (s == "#") return false;
int ans = 0;
for (int i=0; i<s.length(); i++) {
switch (s[i]) {
case '-': ans += 0 * (1 << 3*(s.length()-i-1)); break;
case '\\': ans += 1 * (1 << 3*(s.length()-i-1)); break;
case '(': ans += 2 * (1 << 3*(s.length()-i-1)); break;
case '@': ans += 3 * (1 << 3*(s.length()-i-1)); break;
case '?': ans += 4 * (1 << 3*(s.length()-i-1)); break;
case '>': ans += 5 * (1 << 3*(s.length()-i-1)); break;
case '&': ans += 6 * (1 << 3*(s.length()-i-1)); break;
case '%': ans += 7 * (1 << 3*(s.length()-i-1)); break;
case '/': ans += -1 * (1 << 3*(s.length()-i-1)); break;
}
}
cout << ans << "\n";
return true;
}
int main(void) {
ios::sync_with_stdio(false);
cin.tie(nullptr);
while (solve());
return 0;
}