알고리즘 Lv1 - 제일 작은 수 제거하기
2022.05.16
내가 쓴 코드
#include <string> #include <vector> #include <algorithm> using namespace std; vector<int> solution(vector<int> arr) { vector<int> tmp; vector<int> answer; tmp = arr; sort(tmp.begin(), tmp.end()); for (int i = 0; i < arr.size(); i++) { if (arr[i] == tmp[0]) continue; else answer.push_back(arr[i]); } if (answer.size() == 0) answer.push_back(-1); return answer; }
다른 사람 코드
#include <algorithm> #include <vector> using namespace std; vector<int> solution(vector<int> arr) { if (arr.size() == 1) { return { -1 }; } arr.erase(std::min_element(arr.begin(), arr.end())); return arr; }
배울점
- algorithm 기능 중 min_element 라는 최소값의 인덱스를 리턴해주는 기능이 있다.
*min_element를 이용하면 최소값을 구할 수 있다!
- vector의 erase() 기능은 지우고싶은 원소의 주소를 입력하면 지워준다.
ex) arr.erase(min_element(arr.begin(), arr.end()); // arr 내에 가장 각은 원소값을 가지는 주소를 삭제
- if ( answer.size() == 0 ) 을 if( answer.empty()) 로 대체 할 수 있다.
댓글을 작성해보세요.