벡터에서 가장 작은 수 제거하기

김여울·2025년 6월 19일
0

내일배움캠프

목록 보기
26/111
vector<int> solution(vector<int> arr) {
    if (arr.size() == 1) return {-1};

    int minIndex = 0;
    for (int i = 1; i < arr.size(); i++) {
        if (arr[i] < arr[minIndex]) {
            minIndex = i;
        }
    }

    vector<int> answer;
    for (int i = 0; i < arr.size(); i++) {
        if (i != minIndex) {
            answer.push_back(arr[i]);
        }
    }

    return answer;
}

1️⃣ 원소가 하나만 있을 땐 [-1] 리턴하기

if (arr.size() == 1) return {-1};
  • arr.size() == 1 체크
    배열에 원소가 1개 → 제거하면 빈 벡터가 됨
    그럴 땐 [-1] 하나만 담긴 벡터를 리턴해야 함

  • return {-1};
    {-1} == vector{-1}
    -1 하나만 담긴 벡터를 리턴하는 문법
    -1 자체를 리턴하는 게 아니라, [-1] 벡터 전체를 리턴함


2️⃣ 가장 작은 값의 인덱스 찾기

int minIndex = 0;
for (int i = 1; i < arr.size(); i++) 
{
    if (arr[i] < arr[minIndex]) 
    {
        minIndex = i;
    }
}

처음엔 0번 인덱스가 제일 작다고 가정함
그리고 나머지 원소들과 비교하면서 더 작은 값이 있으면 인덱스를 갱신함

3️⃣ 가장 작은 값 제외한 새 벡터 만들기

vector<int> answer;
for (int i = 0; i < arr.size(); i++) 
{
    if (i != minIndex) 
    {
       answer.push_back(arr[i]);
    }
}

**4️⃣ arr.size()** `arr.size()` 에서 괄호 ()는 함수 호출이라는 걸 의미함 `size` 는 C++의 vector 클래스 안에 있는 멤버 함수 arr.size() : "arr의 크기를 알려줘" 라는 함수 호출 문법 `arr.size` 는 함수의 주소를 가리킬 뿐, 실제 크기를 얻으려면 반드시 ()로 실행해야 한다

0개의 댓글