티스토리 뷰

 

이번 문제는 캐스팅이 반드시 이루어진다고 생각했다.

 

우선 각 문자열의 문자를 확인하여 자연수인지 확인하는 IsDigit함수를 사용하고 자연수이면 덧셈을 하는 방식이다.

 

using System;

public class Solution {
    public int solution(string my_string) {
        int answer = 0;
        
        foreach (char c in my_string)
            if(char.IsDigit(c))
                answer += int.Parse(c.ToString());
        
        return answer;
    }
}

 

결과는 기대 이하의 퍼포먼스가 나왔다.

아무래도 Parse를 통한 캐스팅과 IsDigit을 통한 조건부 확인에서 많이 걸린 것 같은데, 다른분들의 답변을 보며 해답을 찾았다.

 

using System;

public class Solution {
    public int solution(string my_string) {
        int answer = 0;
        
        foreach (char c in my_string)
            if(char.IsDigit(c))
                answer += c - 48;
        
        return answer;
    }
}

 

분명 대학 재학 당시 1학년 때 사용하던 방법인데 까먹고 있었다는게 부끄럽다....

아스키코드에서 48을 뺄셈한 수가 숫자가 되는 것이다.

다시 기억해두자...

최근에 올라온 글
최근에 달린 댓글
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함