728x90
반응형
💻 프로그래머스 - 음양 더하기
📌 문제 설명
정수들의 절댓값을 담은 배열 absolutes와
해당 정수들의 부호를 나타내는 bool 배열 signs가 주어집니다.
각 정수의 실제 값은
- signs[i]가 true면 양수,
- false면 음수로 판단합니다.
이렇게 부호를 적용한 모든 정수들의 총합을 구해서 반환하는 문제예요.
✅ 제한 사항
- absolutes의 길이 = signs의 길이 (1 이상 1,000 이하)
- absolutes[i]는 1 이상 1,000 이하인 정수입니다.
💡 어떻게 접근하면 좋을까요?
두 배열은 같은 길이를 가지고 있으므로,
for문으로 한 번씩 순회하면서 각 요소의 부호를 적용해 더해주면 됩니다.
🧾 C# 코드 풀이
using System;
public class Solution {
public int solution(int[] absolutes, bool[] signs) {
int answer = 0;
for (int i = 0; i < absolutes.Length; i++) {
// signs[i]가 true면 양수, false면 음수
answer += absolutes[i] * (signs[i] ? 1 : -1);
}
return answer;
}
}
🔍 코드 설명
코드설명
absolutes[i] * (signs[i] ? 1 : -1) | 부호에 따라 정수를 양수/음수로 변환합니다. |
answer += ... | 변환된 값을 누적해서 더해줍니다. |
for 반복문 | 배열의 길이만큼 순회하면서 계산을 진행합니다. |
✨ 포인트 정리
- 배열 인덱스를 기준으로 두 배열을 동시에 처리합니다.
- signs[i]가 true면 +, false면 - 부호를 붙여 더합니다.
- 조건문 없이 삼항 연산자를 활용해서 간결하게 처리할 수 있어요 👍
🧾 LINQ 버전 코드 (C#)
using System;
using System.Linq;
public class Solution {
public int solution(int[] absolutes, bool[] signs) {
return absolutes
.Select((value, index) => signs[index] ? value : -value)
.Sum();
}
}
🔍 코드 설명
코드설명
.Select((value, index) => ...) | absolutes 배열을 순회하면서, 해당 인덱스의 signs 값도 함께 활용합니다. |
signs[index] ? value : -value | signs[index]가 true면 양수, false면 음수로 변환합니다. |
.Sum() | 변환된 값들을 모두 더해서 최종 결과를 구합니다. |
✨ 장점
- 코드가 매우 간결하고 가독성이 좋습니다.
- 반복문 없이 함수형 스타일로 문제를 해결할 수 있어요.
- Select와 Sum을 함께 사용하는 패턴은 LINQ 문제 풀이에서 자주 등장합니다.
728x90
반응형
'C# > 프로그래머스' 카테고리의 다른 글
없는 숫자 더하기 (0) | 2025.04.21 |
---|---|
[프로그래머스] 두 정수 사이의 합 (0) | 2025.04.21 |
[프로그래머스] 정수 내림차순으로 배치하기 (0) | 2025.04.21 |
[프로그래머스] 정수 제곱근 판별 (0) | 2025.04.21 |
[프로그래머스] 하샤드 수 (0) | 2025.04.21 |
댓글