- 1478 → "one4seveneight"
- 234567 → "23four5six7"
- 10203 → "1zerotwozero3"
위와같이 영숫자문자열을 숫자로 변환하여 반환하는 문제인데... 조금 바보같이 풀었다. 풀고나서 다른사람이 푼걸 보니 아 왜 복잡하게 생각했지 싶었다..
using System;
using System.Collections.Generic;
public class Solution
{
private Dictionary<string, int> _dic = new Dictionary<string, int>()
{
{"zero", 0},
{"one", 1},
{"two", 2},
{"three", 3},
{"four", 4},
{"five", 5},
{"six", 6},
{"seven", 7},
{"eight", 8},
{"nine", 9},
};
public int solution(string s)
{
string madedWord = "";
string answerString = "";
for (int i = 0; i < s.Length; i++)
{
int tempInt = 0;
if (int.TryParse(s[i].ToString(), out tempInt))
answerString += tempInt;
else
madedWord += s[i];
if (_dic.ContainsKey(madedWord))
{
answerString += _dic[madedWord];
madedWord = "";
}
}
int answer = int.Parse(answerString);
return answer;
}
}
바보같다... 왜 이렇게 복잡하게 생각했지.
transString = transString.Replace("zero", "0");
transString = transString.Replace("one", "1");
transString = transString.Replace("two", "2");
transString = transString.Replace("three", "3");
transString = transString.Replace("four", "4");
transString = transString.Replace("five", "5");
결론은... 그냥 위와같이 Replace() 하면 되는 문제였다.. 뻘쭘