모름

  • 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() 하면 되는 문제였다.. 뻘쭘