내가 푼것.
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()와 이터레이터(반복자)를 이용해 이렇게 풀어낼수도 있다.
'코딩테스트 연습' 카테고리의 다른 글
코딩 테스트 - x만큼 간격이 있는 n개의 숫자 (0) | 2020.01.15 |
---|---|
코딩 테스트 - 행렬의 덧셈 (0) | 2020.01.15 |
코딩 테스트 - 정수 내림차순으로 배치하기 (0) | 2020.01.15 |
코딩테스트 - 자연수 뒤집어 배열로 만들기 (0) | 2020.01.15 |
코딩 테스트 - 자릿수 더하기 (0) | 2020.01.15 |