[백준/BOJ] 백준 2037번 : 문자메시지
2023. 10. 13. 15:18ㆍ알고리즘 문제풀이
https://www.acmicpc.net/problem/2037
각 알파벳이 어떤 숫자의 몇 번째에 속하는지 저장해 놓고, 이를 이용해 문자열의 각 문자를 확인해서 문제를 해결했다.
코드
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <map>
using namespace std;
int p, w;
string input;
map<char, pair<int, int>> number; //각 알파벳이 어떤 숫자의 몇번째에 속하는지 저장
void init() {
number.insert(make_pair(' ', make_pair(1, 1)));
number.insert(make_pair('A', make_pair(2, 1)));
number.insert(make_pair('B', make_pair(2, 2)));
number.insert(make_pair('C', make_pair(2, 3)));
number.insert(make_pair('D', make_pair(3, 1)));
number.insert(make_pair('E', make_pair(3, 2)));
number.insert(make_pair('F', make_pair(3, 3)));
number.insert(make_pair('G', make_pair(4, 1)));
number.insert(make_pair('H', make_pair(4, 2)));
number.insert(make_pair('I', make_pair(4, 3)));
number.insert(make_pair('J', make_pair(5, 1)));
number.insert(make_pair('K', make_pair(5, 2)));
number.insert(make_pair('L', make_pair(5, 3)));
number.insert(make_pair('M', make_pair(6, 1)));
number.insert(make_pair('N', make_pair(6, 2)));
number.insert(make_pair('O', make_pair(6, 3)));
number.insert(make_pair('P', make_pair(7, 1)));
number.insert(make_pair('Q', make_pair(7, 2)));
number.insert(make_pair('R', make_pair(7, 3)));
number.insert(make_pair('S', make_pair(7, 4)));
number.insert(make_pair('T', make_pair(8, 1)));
number.insert(make_pair('U', make_pair(8, 2)));
number.insert(make_pair('V', make_pair(8, 3)));
number.insert(make_pair('W', make_pair(9, 1)));
number.insert(make_pair('X', make_pair(9, 2)));
number.insert(make_pair('Y', make_pair(9, 3)));
number.insert(make_pair('Z', make_pair(9, 4)));
}
int main()
{
cin.tie(NULL);
ios_base::sync_with_stdio(false);
init();
cin >> p >> w;
cin.ignore();
getline(cin, input);
int result = 0;
for (int i = 0; i < input.size(); i++) {
result += (number[input[i]].second * p); //버튼을 누르는 시간 추가
if (i >= 1) {
if (input[i] != ' ' && number[input[i - 1]].first == number[input[i]].first) { //공백이 아니고, 같은 숫자에 속한 문자가 연속으로 있을때
result += w; //기다리는 시간 추가
}
}
}
cout << result;
return 0;
}
'알고리즘 문제풀이' 카테고리의 다른 글
[백준/BOJ] 백준 25601번 : 자바의 형변환 (0) | 2023.10.13 |
---|---|
[백준/BOJ] 백준 27649번 : 토크나이저 (0) | 2023.10.13 |
[백준/BOJ] 백준 21922번 : 학부 연구생 민상 (0) | 2023.10.13 |
[백준/BOJ] 백준 2232번 : 지뢰 (0) | 2023.10.13 |
[백준/BOJ] 백준 24431번 : 유사 라임 게임 (0) | 2023.10.13 |