BOJ | 5622번

송치헌·2021년 6월 26일
0
post-thumbnail

Python 풀이

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)

이런 식으로 풀어도 된다. 풀이는 거기서 거기

C++ 풀이

#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을 이용해서 풀었다.

profile
https://oraange.tistory.com/ 여기에도 많이 놀러와 주세요

0개의 댓글