SMALL
문제 설명
정수가 담긴 리스트 num_list가 주어집니다. num_list의 홀수만 순서대로 이어 붙인 수와 짝수만 순서대로 이어 붙인 수의 합을 return하도록 solution 함수를 완성해주세요.
제한사항
- 2 ≤ num_list의 길이 ≤ 10
- 1 ≤ num_list의 원소 ≤ 9
- num_list에는 적어도 한 개씩의 짝수와 홀수가 있습니다.
입출력 예num_listresult
[3, 4, 5, 2, 1] | 393 |
[5, 7, 8, 3] | 581 |
입출력 예 설명
입출력 예 #1
- 홀수만 이어 붙인 수는 351이고 짝수만 이어 붙인 수는 42입니다. 두 수의 합은 393입니다.
입출력 예 #2
- 홀수만 이어 붙인 수는 573이고 짝수만 이어 붙인 수는 8입니다. 두 수의 합은 581입니다.
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> num_list) {
string odd, even;
for(int num : num_list){
if(num % 2 == 0){
even += to_string(num);
}
else{
odd += to_string(num);
}
}
int total_sum = stoi(even) + stoi(odd);
return total_sum;
}
많은 방법이 있지만.
먼저, 빈 문자열 odd와 even을 선언합니다. 이후 num_list 배열의 각 요소를 하나씩 확인하면서 홀수인지 짝수인지 판별합니다.
- 만약 현재 숫자 num이 짝수라면 (num % 2 == 0), even 문자열에 해당 숫자를 문자열로 변환하여 덧붙입니다. 이는 to_string(num) 함수를 사용하여 숫자를 문자열로 변환하고, even 문자열에 += 연산자를 이용하여 연결합니다.
- 그렇지 않고 현재 숫자 num이 홀수라면, odd 문자열에 해당 숫자를 문자열로 변환하여 덧붙입니다. 이 역시 to_string(num) 함수를 사용하여 숫자를 문자열로 변환하고, odd 문자열에 += 연산자를 이용하여 연결합니다.
- 반복문을 모두 실행한 후, even 문자열과 odd 문자열은 각각 짝수들과 홀수들을 숫자로 연결한 문자열이 됩니다.
- 마지막으로, stoi(even) 함수와 stoi(odd) 함수를 사용하여 even 문자열과 odd 문자열을 각각 정수로 변환합니다. 변환된 정수를 더하여 total_sum에 저장하고, 이 값을 반환합니다.
이를 통해 홀수와 짝수를 따로 연결한 후, 그 합을 구할 수 있습니다.
728x90
728x90
LIST
'🅴🆃🅲 > CodingTest' 카테고리의 다른 글
[Programmers]_마지막 두 원소[C++]_기초 (0) | 2023.06.19 |
---|---|
[백준]_17298번_오큰 수 구하기[C++] (0) | 2023.05.27 |
[백준]_1874번_스택으로 수열 만들기[C++]☆중요 (0) | 2023.05.12 |