프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
문제 설명
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
◈ 1 ≤ numbers의 길이 ≤ 9
◈ 0≤ numbers의 모든 원소 ≤ 9
◈ numbers의 모든 원소는 서로 다릅니다.
입출력 예
numbers result [1, 2, 3, 4, 6, 7, 8, 0] 14 [5, 8, 4, 0, 6, 7, 9] 6
입출력 예 설명
입출력 예 #1
◈ 5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다.
입출력 예 #2
◈ 1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다.
코딩
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> numbers) {
int answer = 0;
vector<int> vecNum = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
for (size_t i = 0; i < numbers.size(); ++i)
{
vector<int>::iterator iter = vecNum.begin();
for (; iter != vecNum.end(); ++iter)
{
if (*iter == numbers[i])
{
vecNum.erase(iter);
break;
}
}
}
for (size_t i = 0; i < vecNum.size(); ++i)
{
answer += vecNum[i];
}
return answer;
}
주어지는 numbers 숫자는 서로 겹치지 않는 1~9 범위의 수가 주어진다.
때문에 1~9까지 담는 vector를 하나 만들어주고, 이번에 검사하는 numbers의 요소를 vecNum에서 찾아 지워주었다.
이때, vector.erease()는 iterator를 전달받아야 하기 때문에 2번째 for문은 iterator로 반복 수행해주었다.
실행 결과
'프로그래밍 > 코딩 문제 풀이' 카테고리의 다른 글
프로그래머스 2023.07.21 (1Lv 숫자 문자열과 영단어) (0) | 2023.07.21 |
---|---|
프로그래머스 2023.07.21 (1Lv 부족한 금액 계산하기) (0) | 2023.07.21 |
프로그래머스 2023.07.20 (1Lv 대충 만든 자판) (0) | 2023.07.20 |
프로그래머스 2023.07.19 (1Lv 명예의 전당 (1)) (0) | 2023.07.19 |
프로그래머스 2023.07.18 (1Lv 실패율) (0) | 2023.07.18 |