문제 링크
난이도 : Lv. 0
문제 내용
정수가 담긴 리스트 num_list
가 주어집니다. num_list
의 홀수만 순서대로 이어 붙인 수와 짝수만 순서대로 이어 붙인 수의 합을 return하도록 solution 함수를 완성해주세요.
입력
[3, 4, 5, 2, 1]
출력
393
문제 분석
for문으로 돌면서 홀수/짝수 string에 이어붙인 뒤에, stoi로 숫자로 바꿔서 더하기
작성한 코드
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> num_list) {
int answer = 0;
string odd = "";
string even = "";
for (int num : num_list) {
if (num%2==0) even += to_string(num);
else odd += to_string(num);
}
answer = stoi(odd) + stoi(even);
return answer;
}
우수 코드 분석
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> v) {
string odd = "", even = "";
for(const int& i : v)
i&1 ? odd += to_string(i) : even += to_string(i);
return stoi(odd) + stoi(even);
}
& 사용해서 참조로 접근하면 빠름
i&1 하면 비트연산 하게 되니까 0000 0001 이랑 and 함 ⇒ 홀수면 true, 짝수면 false ⇒ 그래서 삼항연산으로 사용함