문제 풀기/C#

26. 음양 더하기

kagan-draca 2025. 1. 16. 14:08

 

풀이 1) 반복문을 활용해 signs가 음인지 양인지 확인 및 값 더하기

using System;

public class Solution {
    public int solution(int[] absolutes, bool[] signs) {
        int sum = 0;
        
        for(int i = 0; i < absolutes.Length; i++)
            sum += signs[i] == true ? absolutes[i] : -1 * absolutes[i];
        
        
        return sum;
    }
}

 

 

풀이 2) Select 문의 콜백 함수로 (element, index)를 활용해 signs가 음인지, 양인지 판단하여 더하기

 

using System;
using System.Linq;

public class Solution {
    public int solution(int[] absolutes, bool[] signs) {
        return absolutes.Select((element, index)=> signs[index] ? element : -1 * element).Sum();
    }
}

 

위와 같이 2가지 방식으로 문제를 풀었을 때, 풀이 2)가 더 많은 수행 시간을 요구하는 이유를 추측해보면

 

Select() 함수에서 한 번 반복문을 수행시켜야하고,

Sum() 함수에서 한 번 더 반복문을 수행시켜야 하기 때문으로 추측된다. 

 

결론적으로는, 내장 함수가 무조건 좋은 것만은 아니다!

때로는 직접적으로 반복문을 수행시켜 결과를 얻는 것이 좋을 수 있다!