
프로그래머스의 평균 구하기 문제를 풀어보았다.
public class Solution {
public double solution(int[] arr) {
double answer = 0;
double sum = 0;
for (int i = 0; i < arr.Length; i++)
{
sum += arr[i];
}
answer = sum / arr.Length;
return answer;
}
}
변수 선언 : 기본 적으로 제공되는 답을 저장 할 변수 answer와, 합을 저장할 변수 sum을 초기화.
for문을 사용하여 배열 arr의 요소 전체를 순회하고, sum에 누적하여 합을 구함.
합과 배열 요소 가짓수를 나눠 평균을 계산하고 answer에 할당
answer 반환
예1)
using System.Linq;
public class Solution {
public double solution(int[] arr) {
return arr.Average();
}
}
예2)
using System.Linq;
public class Solution {
public double solution(int[] arr) {
double answer = 0;
answer = arr.Average();
return answer;
}
}
두 방법 모두 성능 측면에서 큰 차이가 없다 => 0(n)
Linq를 사용하는 방법은 코드가 더 간결하고 읽기 쉽지만, 아주 미세하게 추가적인 오버헤드가 발생할 수 있다.
for문을 사용하는 방법은 Linq의 추가적인 처리 없이 직접 계산을 수행하기 때문에, 최소한의 메모리와 CPU 시간을 사용한다.
대부분의 경우 System.Linq를 사용하는 것이 편리하다.
하지만 매우 큰 데이터셋을 다루거나, 게임 개발과 같이 높은 성능이 요구되는 상황에서는 순수한 반복문을 사용하는 방법이 약간 더 효율적일 수 있음.