[프로그래머스] 음양 더하기

김유원·2024년 1월 17일
0

📝24.01.17

🔗 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/76501

문제 설명

어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.

[C#, C++] 내가 작성한 풀이

C#과 C++ 모두 동일한 방법으로 풀었다.

using System;

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

[C#] 남이 작성한 풀이

오늘도 어김없이 Linq를 활용한 풀이가 등장했다.

using System;
using System.Linq;

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

그런데 (t, idx) 가 어떻게 t : -t로 치환되는지 모르겠다!!! 그래서 chat-gpt에게 해석을 부탁했다.

즉, absolutes 배열 안의 숫자들을 하나씩 뽑고(t) 해당 숫자들의 인덱스(idx)를 사용해 signs의 true / false를 판별하여 계산한 것이다.

-더이상 미룰 수 없다 Linq 공부-

[C++] 남이 작성한 풀이

은 내 풀이보다 나은 풀이가 없었다.

profile
개발 공부 블로그

0개의 댓글

관련 채용 정보