๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Programmers)

[c++] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์Œ์–‘ ๋”ํ•˜๊ธฐ( Level 1)

by ์•ˆ์ฃผํ˜• 2021. 10. 22.

๋ฌธ์ œ

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์Œ์–‘ ๋”ํ•˜๊ธฐ

์–ด๋–ค ์ •์ˆ˜๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ •์ˆ˜๋“ค์˜ ์ ˆ๋Œ“๊ฐ’์„ ์ฐจ๋ก€๋Œ€๋กœ ๋‹ด์€ ์ •์ˆ˜ ๋ฐฐ์—ด absolutes์™€ ์ด ์ •์ˆ˜๋“ค์˜ ๋ถ€ํ˜ธ๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๋‹ด์€ ๋ถˆ๋ฆฌ์–ธ ๋ฐฐ์—ด signs๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์‹ค์ œ ์ •์ˆ˜๋“ค์˜ ํ•ฉ์„ ๊ตฌํ•˜์—ฌ re

programmers.co.kr

 

์ฝ”๋“œ

#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]) answer += absolutes[i];
        else answer += (~absolutes[i])+1;
    }
    return answer;
}

 

ํ’€์ด(1๋ถ„ 50์ดˆ)

O(N)์œผ๋กœ signs์ด true์ผ ๊ฒฝ์šฐ ๋”ํ•ด์ฃผ๊ณ  signs๊ฐ€ false์ผ ๊ฒฝ์šฐ 2์˜ ๋ณด์ˆ˜ ํ˜•ํƒœ๋กœ ๋ฐ”๊ฟ” ์Œ์ˆ˜๋กœ ๋งŒ๋“  ํ›„ ๋”ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€