풀이 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() 함수에서 한 번 더 반복문을 수행시켜야 하기 때문으로 추측된다.
결론적으로는, 내장 함수가 무조건 좋은 것만은 아니다!
때로는 직접적으로 반복문을 수행시켜 결과를 얻는 것이 좋을 수 있다!
'문제 풀기 > C#' 카테고리의 다른 글
28. 없는 숫자 더하기 (0) | 2025.01.17 |
---|---|
27. 핸드폰 번호 가리기 (0) | 2025.01.16 |
25. 나누어 떨어지는 숫자 배열( .Where() 함수, 배열 생성 및 값 할당 ) (0) | 2025.01.16 |
24. 서울에서 김서방 찾기(Array.IndexOf(), Array.FindIndex() 함수) (0) | 2025.01.15 |
23. 콜라츠 추측 (1) | 2025.01.15 |