
using System;
public class Solution {
public int solution(int[] absolutes, bool[] signs) {
int answer = 0;
for(int i = 0; i < absolutes.Length; i++)
{
if(signs[i] == false)
absolutes[i] *= -1;
answer += absolutes[i];
}
return answer;
}
}
for 반복문을 사용하여 absolutes 배열의 각 요소를 순회
if 조건문을 사용하여 signs[i]가 false인 경우, 즉 원래 숫자가 음수였던 경우, absolutes[i] 값을 음수로 변경
변경된 absolutes[i] 값을 answer에 더함
모든 요소 처리 후 answer 값 반환
using System;
using System.Linq;
public class Solution {
public int solution(int[] absolutes, bool[] signs) {
return absolutes.Zip(signs, (absolute, sign) => sign ? absolute : -absolute).Sum();
}
}
Zip 메서드를 사용absolutes와 signs 배열을 결합하고, 람다식을 통해 각 요소의 실제 값을 계산한 후, Sum 메서드로 모든 값을 합산
LINQ 제공 메서드 중 하나
- 예시 : 두 배열이나 리스트의 각 요소를 병합하여 새로운 시퀀스를 생성할 때 사용
int[] absolutes = { 4, 7, 12 };
bool[] signs = { true, false, true };
var result = absolutes.Zip(signs, (absolute, sign) => sign ? absolute : -absolute);
absolute는 absolutes 배열의 요소
sign은 signs 배열의 요소
람다 식 (absolute, sign) => sign ? absolute : -absolute
true면 absolute 값을 그대로 사용하고, false면 -absolute로 바꿔서 음수 값을 생성Zip 메서드는 두 배열의 요소들을 쉽게 병합하여 복잡한 연산을 간단하게 수행 할 수 있다.