규칙에 따라 문자에 대응하는 수를 출력하는 문제입니다.
목표
할머니는 전화번호를 문자로 기억합니다. 즉 어떤 단어를 생각하고 각 알파벳에 해당하는 숫자를 걸면됩니다. 또한 할머니는 숫자 1을 돌리는데 2초가 소요됩니다. 그리고 2번부터 차례대로 1초씩 더 걸립니다.
할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 시간은 몇 초일까요.
입력과 출력
입력
알파벳 대문자로 이루어진 단어가 주어집니다.
출력
다이얼을 걸기 위해서 필요한 시간을 출력합니다.
예제 입력과 출력
입력
UNUCIC
출력
36
풀이
1) 대문자로 된 단어를 입력받습니다.
2) 단어에 해당하는 숫자를 확인하고 숫자로 변환합니다.
3) 숫자로 변환시키면서 해당 숫자에 걸리는 초를 계속 더합니다.
4) 더해진 시간을 출력합니다.
코드
1) 대문자로 된 단어를 입력받습니다.
string input = Console.ReadLine();
char[] words = input.ToCharArray();
2) 단어에 해당하는 숫자를 확인하고 숫자로 변환합니다.
static int CapitalToNum(char capital)
{
if (capital >= 'A' && capital <= 'C')
return 2;
else if (capital >= 'D' && capital <= 'F')
return 3;
else if (capital >= 'G' && capital <= 'I')
return 4;
else if (capital >= 'J' && capital <= 'L')
return 5;
else if (capital >= 'M' && capital <= 'O')
return 6;
else if (capital >= 'P' && capital <= 'S')
return 7;
else if (capital >= 'T' && capital <= 'V')
return 8;
else if (capital >= 'W' && capital <= 'Z')
return 9;
else
return 0;
}
3) 숫자로 변환시키면서 해당 숫자에 걸리는 초를 계속 더합니다.
int sumTime = 0;
for (int i = 0; i < words.Length; i++)
{
int a = CapitalToNum(words[i]);
sumTime += (a + 1);
}
4) 더해진 시간을 출력합니다.
Console.WriteLine(sumTime);
정상출력됩니다.
코드 전문 보기
...더보기
class Program {
static void Main(string[] args)
{
string input = Console.ReadLine();
char[] words = input.ToCharArray();
int sumTime = 0;
for (int i = 0; i < words.Length; i++)
{
int a = CapitalToNum(words[i]);
sumTime += (a + 1);
}
Console.WriteLine(sumTime);
}
static int CapitalToNum(char capital)
{
if (capital >= 'A' && capital <= 'C')
return 2;
else if (capital >= 'D' && capital <= 'F')
return 3;
else if (capital >= 'G' && capital <= 'I')
return 4;
else if (capital >= 'J' && capital <= 'L')
return 5;
else if (capital >= 'M' && capital <= 'O')
return 6;
else if (capital >= 'P' && capital <= 'S')
return 7;
else if (capital >= 'T' && capital <= 'V')
return 8;
else if (capital >= 'W' && capital <= 'Z')
return 9;
else
return 0;
}
}