문제 설명
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
제한사항
- absolutes의 길이는 1 이상 1,000 이하입니다.
- absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
- signs의 길이는 absolutes의 길이와 같습니다.
- signs[i]가 참이면 absolutes[i]의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.
입출력 예
absolutes | signs | result | |||
[4, 7, 12] | [true, false, true] | 9 | signs가 [true, false, true] 이므로, 실제 수들의 값은 각각 4, -7, 12 입니다. 따라서 세 수의 합인 9를 return 해야 합니다. |
||
[1, 2, 3] | [false, false, true] | 0 | signs가 [false, false, true] 이므로, 실제 수들의 값은 각각 -1, -2, 3 입니다. 따라서 세 수의 합인 0을 return 해야 합니다. |
문제 풀이
풀이 언어 : C++
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> absolutes, vector<bool> signs) {
int answer = 0;
for(int i=0; i<signs.size(); i++)
{
// signs 값을 비교하여 더하거나 빼기
if(signs[i]) // 양수
{
answer+=absolutes[i];
}
else // 음수
{
answer-=absolutes[i];
}
}
return answer;
}
반복문을 배열의 길이 만큼 돌리며 모든 요소를 훑어보고 그러면서 양수라면 answer에 더하기를 음수라면 answer에 빼기를 해주면 되는 문제이다. if문을 이용하여 signs의 값이 true라면 양수라고 생각하고 answer에 absolutes의 값을 더한다. 반대로 signs가 false라면 음수라고 생각하고 absolutes의 값을 answer에서 빼준다. 간단하게 설계할 수 있는 문제였다.
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/76501
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
'Code KATA > 알고리즘 코드카타' 카테고리의 다른 글
[2024.12.29] 없는 숫자 더하기 (3) | 2024.12.27 |
---|---|
[2024.12.28] 핸드폰 번호 가리기 (0) | 2024.12.27 |
[2024.12.26] 나누어 떨어지는 숫자 배열 (0) | 2024.12.26 |
[2024.12.25] 서울에서 김서방 찾기 (0) | 2024.12.26 |
[2024.12.24] 콜라츠 추측 (0) | 2024.12.24 |