num = {} #빈 dictionary 선언 #각 문자 매핑 num['A']=num['B']=num['C']=3 num['D']=num['E']=num['F']=4 num['G']=num['H']=num['I']=5 num['J']=num['K']=num['L']=6 num['M']=num['N']=num['O']=7 num['P']=num['Q']=num['R']=num['S']=8 num['T']=num['U']=num['V']=9 num['W']=num['X']=num['Y']=num['Z']=10 s = input() #단어 입력 res = 0 #결과 for c in s: res += num[c] #각 문자에 해당하는 value값 만큼 추가 print(res) #정답 출력
그냥 무식하게 단어를 딕셔너리를 이용해 매핑한 후 단어를 입력받고 단어의 각 문자가 어떤 숫자와 연결되는지 출력해주면 끝
다른 사람들은 리스트로 풀었다.
a = input()
alpha = ["ABC", "DEF", "GHI", "JKL", "MNO", "PQRS", "TUV", "WXYZ"]
sum = 0
for i in list(a):
for j in range(len(alpha)):
if i in alpha[j]:
sum += j + 3
print(sum)
이런 식으로 풀어도 된다. 풀이는 거기서 거기
#include <string> #include <map> #include <iostream> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); map<char, int> m; string S; cin >> S; m['A'] = 2; m['B'] = 2; m['C'] = 2; m['D'] = 3; m['E'] = 3; m['F'] = 3; m['G'] = 4; m['H'] = 4; m['I'] = 4; m['J'] = 5; m['K'] = 5; m['L'] = 5; m['M'] = 6; m['N'] = 6; m['O'] = 6; m['P'] = 7; m['Q'] = 7; m['R'] = 7; m['S'] = 7; m['T'] = 8; m['U'] = 8; m['V'] = 8; m['W'] = 9; m['X'] = 9; m['Y'] = 9; m['Z'] = 9; int time = 0; for (char a : S) { time += m[a]+1; } cout << time; }
이것도 마찬가지로 파이썬에서 딕셔너리와 비슷한 map을 이용해서 풀었다.