728x90
반응형
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> numbers) {
int answer = 0;
vector<int> numbs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
for(int i = 0; i < numbs.size(); i++){
for(int j = 0; j < numbers.size(); j++){
if (numbs[i] == numbers[j]){
numbs[i] = 0;
}
}
answer += numbs[i];
}
return answer;
}
0부터 9까지의 배열을 하나 더 만들어 numbers의 배열 요소들과 비교해
numbers의 숫자와 일치하면 새로 만든 0부터 9까지의 배열 원소를 0으로 만들어 덧셈을 했을 때도 효력(?)이 없게 만들어줬다. 배열 원소를 삭제하기보다 조금 더 표현이 쉽다고 생각했다.
그래서 0이 되지 않은 배열의 원소들 합을 answer로 출력하도록 했다.
이것보다 더 효과적인 풀이법이 있을 거라 생각해서 다른 사람들의 풀이를 찾아보았다.
어차피 numbers에 없는 원소들의 합을 구해야하기 때문에 0부터 9까지의 합에서 numbers의 원소 합을 빼주는 방법을 사용했다. 이 풀이법을 보고 아차 했다..!
역시 세상에 똑똑한 사람들은 많다.
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> numbers) {
int answer = 45;
for (int i = 0 ; i < numbers.size() ; i++)
answer -= numbers[i];
return answer;
}
728x90
반응형
'프로그래머스 C++ > Level.1' 카테고리의 다른 글
프로그래머스 Level.1 가운데 글자 가져오기 (0) | 2023.12.26 |
---|---|
프로그래머스 Level.1 제일 작은 수 제거하기 (0) | 2023.12.25 |
프로그래머스 Level.1 음양 더하기 (0) | 2023.11.12 |
프로그래머스 Level.1 콜라츠 추측 (0) | 2023.10.21 |
프로그래머스 Level.1 서울에서 김서방 찾기 (1) | 2023.09.24 |