[프로그래머스][C++] 음양 더하기
음양 더하기
문제 링크
분석
absolutes
배열의 정수들을 signs
의 같은 인덱스에 있는 값으로 부호를 결정해 정수들의 총 합을 구하는 문제입니다.
if문이나 삼항연산자를 사용할 수 있습니다.
풀이
if문을 사용한 방법입니다.
#include <vector>
using namespace std;
int solution(vector<int> absolutes, vector<bool> signs) {
int answer = 0;
for (int i = 0; i < signs.size() ; ++i)
{
if(false == signs[i])
{
absolutes[i] *= -1;
}
answer += absolutes[i];
}
return answer;
}
if(false == signs[i])
에서는 signs
배열에서 같은 인덱스의 값이 flase
라면 음수를 만들어준 후 더해줍니다.
만약 true
라면 그대로 값을 더해주면 됩니다.
삼항연산자를 사용한 방법입니다.
#include <vector>
using namespace std;
int solution(vector<int> absolutes, vector<bool> signs) {
int answer = 0;
for (int i = 0; i < signs.size() ; ++i)
{
answer += (true == signs[i]) ? absolutes[i] : -absolutes[i];
}
return answer;
}
성능 요약
if문을 사용한 성능입니다.
테스트 1 〉 통과 (0.02ms, 4.28MB)
테스트 2 〉 통과 (0.02ms, 4.21MB)
테스트 3 〉 통과 (0.01ms, 4.09MB)
테스트 4 〉 통과 (0.01ms, 4.2MB)
테스트 5 〉 통과 (0.01ms, 4.19MB)
테스트 6 〉 통과 (0.01ms, 4.21MB)
테스트 7 〉 통과 (0.01ms, 4.13MB)
테스트 8 〉 통과 (0.01ms, 4.21MB)
테스트 9 〉 통과 (0.01ms, 4.18MB)
삼항연산자를 사용한 성능입니다.
테스트 1 〉 통과 (0.01ms, 4.02MB)
테스트 2 〉 통과 (0.02ms, 3.67MB)
테스트 3 〉 통과 (0.02ms, 4.21MB)
테스트 4 〉 통과 (0.01ms, 4.07MB)
테스트 5 〉 통과 (0.02ms, 4.2MB)
테스트 6 〉 통과 (0.01ms, 3.7MB)
테스트 7 〉 통과 (0.01ms, 4.22MB)
테스트 8 〉 통과 (0.01ms, 3.75MB)
테스트 9 〉 통과 (0.01ms, 4.14MB)
댓글남기기