프로그래머스 레벨 1 테스트

내가 푼것.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <string>
#include <vector>
 
using namespace std;
 
vector<int> solution(vector<int> arr) 
{
    int Min = arr[0];
    int Index = 0;
    
    if(arr.size() == 1)
    {
        arr[0= -1;
        return arr;
    }
    
    for(int i = 1 ; i < arr.size() ; i++)
    {
        Index = (Min > arr[i]) ? i : Index;
        Min = min(Min, arr[i]);
    }
    
    arr.erase(arr.begin() + Index);
    
    return arr;
}
 

algorithm 헤더에는 배열에서 가장 작은 값과 가장 큰 값을 찾아주는 함수가 있다.

min_element(), max_element()이다.

min_element(배열시작, 배열끝); 으로 사용하며, 반환값은 값이 들어있는 주소다.

 

min_element()를 알게되고 수정한 것

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <string>
#include <vector>
#include <algorithm>
 
using namespace std;
 
vector<int> solution(vector<int> arr) 
{
    vector<int>::iterator iter = arr.begin();    
    
    iter = min_element(arr.begin(), arr.end());
    arr.erase(iter);
    
    if(arr.empty())
        arr.emplace_back(-1);
    
    return arr;
}
 

min_element()와 이터레이터(반복자)를 이용해 이렇게 풀어낼수도 있다.

+ Recent posts