코딩테스트

프로그래머스_1단계_음양 더하기_C++

코딩기계 2024. 4. 11. 22:41

 

문제풀이: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;
}