https://www.acmicpc.net/problem/5622
5622번: 다이얼
첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다.
www.acmicpc.net
각 알파벳에 해당하는 다이얼 넘버를 배열로 저장하고, 바로 꺼내 쓰는 방식을 사용했다.
마지막 출력값이, 다이얼 넘버 + 각 넘버를 누르는 수 (즉, 문자열의 길이) 여야 한다는 점이 좀 헷갈렸다
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int alp[26] = { 2, 2, 2, 3, 3, 3, 4, 4, 4,\
5, 5, 5, 6, 6, 6, 7, 7, 7, 7, \
8, 8, 8, 9, 9, 9, 9 };
int main(void) {
string st;
int sum = 0;
cin >> st;
for (int i = 0; i < st.length(); i++) {
sum += alp[(int)(st[i]-'A')];
}
printf("%d", sum+st.length());
}
'컴퓨터기본 > 문제풀이' 카테고리의 다른 글
[정올] 2008 : 할부 (0) | 2021.09.03 |
---|---|
[정올] 2712 : 두 수의 최소합 (0) | 2021.09.03 |
[백준] 2751번: 수 정렬하기 2 (0) | 2021.08.26 |
[백준] 1018번: 체스판 다시 칠하기 (0) | 2021.08.25 |
유클리드 호제법을 이용한 최대공약수, 최대공배수 (0) | 2021.08.24 |