문제풀이:3번풀이가 최적화 된 코드이다
최적화 안된거같으니까 삼항연산자 활용해보자
문제풀이1
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> absolutes, vector<bool> signs) {
int answer = 0;
for( int i=0; i<absolutes.size(); i++)
{
if(signs[i]==false)
{
answer-= absolutes[i];
}
else
{
answer+= absolutes[i];
}
}
return answer;
}
문제풀이2: 순서 바꿔주면 ==false 또한 뺄수있다.
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> absolutes, vector<bool> signs) {
int answer = 0;
for( int i=0; i<absolutes.size(); i++)
{
signs[i]==false ?answer-= absolutes[i] : answer+= absolutes[i];
}
return answer;
}
문제풀이3
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> absolutes, vector<bool> signs) {
int answer = 0;
for( int i=0; i<absolutes.size(); i++)
{
signs[i] ?answer+= absolutes[i]: answer-= absolutes[i];
}
return answer;
}
'코딩테스트' 카테고리의 다른 글
프로그래머스_1단계_문자열 내 p와 y의 개수_C++ (0) | 2024.04.11 |
---|---|
프로그래머스_1단계_내적_C++ (0) | 2024.04.11 |
프로그래머스_0단계_ad 제거하기_C++ (0) | 2024.04.11 |
프로그래머스_0단계_공백으로 구분하기 1C++ (0) | 2024.04.11 |
프로그래머스_0단계_숨어있는 숫자의 덧셈 (1)C++ (0) | 2024.04.11 |