https://www.acmicpc.net/problem/5622
여 문제에서 문자열이랑 숫자랑 짝지어줘야 하는데
나누기 사용해서 뭐 할려다가 그냥 노가다로 짝지었거든요
이러면 한 대 맞나요?
using System;
using System.Collections.Generic;
class Dol
{
static void Main(string[] args)
{
//1->2 2->3 3->4...
//ABC->1 DEF->2 .... PQRS->7 ..... WXYZ->9
Dictionary<char, int> dic = new Dictionary<char, int>();
dic.Add('A', 3);
dic.Add('B', 3);
dic.Add('C', 3);
dic.Add('D', 4);
dic.Add('E', 4);
dic.Add('F', 4);
dic.Add('G', 5);
dic.Add('H', 5);
dic.Add('I', 5);
dic.Add('J', 6);
dic.Add('K', 6);
dic.Add('L', 6);
dic.Add('M', 7);
dic.Add('N', 7);
dic.Add('O', 7);
dic.Add('P', 8);
dic.Add('Q', 8);
dic.Add('R', 8);
dic.Add('S', 8);
dic.Add('T', 9);
dic.Add('U', 9);
dic.Add('V', 9);
dic.Add('W', 10);
dic.Add('X', 10);
dic.Add('Y', 10);
dic.Add('Z', 10);
int sum = 0;
char[] chars = Console.ReadLine().ToCharArray();
foreach (char a in chars)
{
sum += dic[a];
}
Console.WriteLine(sum);
}
}
add로 일일이 하지 말고 이니셜라이저로 하셈
https://docs.microsoft.com/bs-cyrl-ba/dotnet/csharp/programming-guide/classes-and-structs/how-to-initialize-a-dictionary-with-a-collection-initializer
오 감사합니다
나도 C++ Map로 그렇게 풀었는데
ㅋㅋㅋ
ASCII면 for(int i='A';i<='Z';i++)로 풀수도 있겠네
A-Z중 P랑 W만 뺀 문자열 만들고, 문자열 인덱싱해서 for루프돌려서 딕셔너리에 add하고, 나중에 P랑 W만 직접 add하는게 제일 간단할듯
https://dotnetfiddle.net/WYyMdR