반응형
[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 다이얼 (5622)
[ 문제 ]
상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다.
전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다.
숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다.
상근이의 할머니는 전화 번호를 각 숫자에 해당하는 문자로 외운다. 즉, 어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다.
할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 최소 시간을 구하는 프로그램을 작성하시오.
[ 입력 ]
첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다.
[ 출력 ]
첫째 줄에 다이얼을 걸기 위해서 필요한 최소 시간을 출력한다.
[ 코드 1 ]
#include<iostream>
using namespace std;
int main() {
string a; // 문자열 입력 변수
cin >> a;
int time = 0; // 총 시간 합계 변수
for (int i = 0; a[i] != NULL; i++) {
if (a[i] == 'A' || a[i] == 'B' || a[i] == 'C')
{
time += 3;
}
else if (a[i] == 'D' || a[i] == 'E' || a[i] == 'F')
{
time += 4;
}
else if (a[i] == 'G' || a[i] == 'H' || a[i] == 'I')
{
time += 5;
}
else if (a[i] == 'J' || a[i] == 'K' || a[i] == 'L')
{
time += 6;
}
else if (a[i] == 'M' || a[i] == 'N' || a[i] == 'O')
{
time += 7;
}
else if (a[i] == 'P' || a[i] == 'Q' || a[i] == 'R' || a[i] == 'S')
{
time += 8;
}
else if (a[i] == 'T' || a[i] == 'U' || a[i] == 'V')
{
time += 9;
}
else if (a[i] == 'W' || a[i] == 'X' || a[i] == 'Y' || a[i] == 'Z')
{
time += 10;
}
}
cout << time << endl;
}
[ 코드 2 ]
#include<iostream>
using namespace std;
int main() {
string a; // 문자열 입력 변수
cin >> a;
int time[] = { 3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,8,9,9,9,10,10,10,10 }; // 시간 배열
int result = 0; // 최종 값
for (int i = 0; a[i] != NULL; i++) {
result += time[a[i] - 'A'];
}
cout << result << endl;
}
* 유의사항 - 아직 공부하고 있는 문과생 코린이가, 정리해서 남겨놓은 정리 및 필기노트입니다. - 정확하지 않거나, 틀린 점이 있을 수 있으니, 유의해서 봐주시면 감사하겠습니다. - 혹시 잘못된 점을 발견하셨다면, 댓글로 친절하게 남겨주시면 감사하겠습니다 :) |
반응형
'문과 코린이의, [C. C++] 기록 > C++ 백준 문제풀이' 카테고리의 다른 글
[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 단어 뒤집기 (9093) (0) | 2021.07.06 |
---|---|
[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 스택 (10828) (0) | 2021.07.06 |
[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 상수 (2908) (0) | 2021.06.30 |
[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 단어의 개수 (1152) (0) | 2021.06.29 |
[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 단어 공부 (1157) (0) | 2021.06.29 |