코딩테스트/Programmers

[Programmers] 입문) 대문자와 소문자 (아스키코드)

HONGGG 2023. 6. 27. 18:29

 

이번 문제는 보자마자 아스키코드를 사용하자고 생각했다.

 

당연히 STL에서 IsUpper와 IsLower같은 확인 함수와 함께 Select로 확인할 수도 있겠지만 이방법이 더 빠를 것이라 생각했다.

 

using System;

public class Solution {
    public string solution(string my_string) {
        string answer = "";
        
        foreach (char c in my_string)
            answer += (char)((c < 91) ? c + 32 : c - 32);
        
        return answer;
    }
}

 

이번에는 다른분들이 STL을 사용한 코드를 실행해봤다.

 

using System;
using System.Linq;

public class Solution {
    public string solution(string my_string) {
        var selectResult = my_string.Select(a => char.IsUpper(a) ? char.ToLower(a) : char.ToUpper(a));

        string answer = new String(selectResult.ToArray());
        return answer;
    }
}

 

코드가 깔끔해 보이기는 한데 예상했던 것 훨씬 이상으로 퍼포먼스가 느려졌다.