딕셔너리 초기화
입력 처리
진법 변환
결과 출력
using System.Text;
namespace BOJ
{
class No_11005
{
static Dictionary<int, string> dict = new Dictionary<int, string>();
static void Main()
{
var sb = new StringBuilder();
InitDictionary();
var inputs = InputToIntArray();
int number = inputs[0];
int formation = inputs[1];
var answer = ConvertToFormation(number, formation);
while (answer.Count > 0)
{
sb.Append(answer.Pop());
}
Console.WriteLine(sb);
}
static void InitDictionary()
{
for (int i = 0; i < 36; i++)
{
dict.TryAdd(i, i < 10 ? i.ToString() : ((char)(i + 55)).ToString());
}
}
static int[] InputToIntArray() => Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
static Stack<string> ConvertToFormation(int number, int formation)
{
Stack<string> st = new Stack<string>();
int temp = number;
while (temp != 0)
{
int g = temp / formation;
int r = temp % formation;
st.Push(dict[r]);
temp = g;
}
return st;
}
}
}
딕셔너리에 해당 데이터들을 저장하고 찾는 방식을 고안했다면 쉽게 풀 수 있을 문제였을 것 같다.
딕셔너리에 2부터 저장하였고 그다음에 1부터 저장하였다 => 둘 다 실패
당연히 0부터 저장을 해야되는 것이였는데 생각이 짧았다.
수학
구현