728x90
반응형
너무 오랜만에 코딩 공부를 해버렸다. 문법이 잘 기억나지 않는다. 조만간 소스코드로 업무를 빡세게 시작하게 될 예정이기도 하고, 오랜만에 기억을 되찾고자 프로그래머스를 켰다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> arr) {
vector<int> answer;
if(arr.size() == 1){
arr[0] = -1;
}
else{
arr.erase(min_element(arr.begin(), arr.end()));
}
answer = arr;
return answer;
}
원래는 else에서 제일 큰 값부터 작은 값으로 배열의 원소들을 나열하고, 제일 마지막에 있는 원소를 제거하는 그런 걸 생각했으나 어떻게 써야했나 기억이 나지 않아 일단 min_element라는 함수를 사용하여 문제를 해결했다.
https://m.blog.naver.com/kks227/220246803499
[C++ 강좌] 093 - 알고리즘 헤더 파일 (2) - max_element(), min_element()
저번 글에서 두 개의 값 중 최대, 최소값을 찾는 함수를 알려드렸는데...비슷한 역할을 하면서 사용법이 다...
blog.naver.com
https://notepad96.tistory.com/40
C++ Vector 최대값, 최소값, 인덱스 구하기
1. 최대값, 최소값 vector 컨테이너에서 최대값, 최소값을 구할 경우 for문을 작성할 수도 있지만 이는 복잡하다. 그래서 algorithm 라이브러리의 있는 max_element를 사용한다면 한줄로도 간단하게 최대
notepad96.tistory.com
내가 구상했던 풀이와 비슷한 풀이법을 찾아보기로 했다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> arr) {
vector<int> answer=arr;
sort(arr.begin(),arr.end());
for(int i=0;i<answer.size();i++){
if(answer[i]==arr[0]){
answer.erase(answer.begin()+i);
break;
}
}
if(answer.empty())
answer.push_back(-1);
return answer;
}
min_index , max_index 라는 변수도 있어서 다음에 기회가 된다면 적절히 활용해도 좋을 것 같다.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> arr) {
int min_index = 0;
if(arr.size() == 1) {
vector<int> res;
res.push_back(-1);
return res;
}
for(int i = 0; i < arr.size(); i++)
if(arr[min_index] > arr[i]) min_index = i;
arr.erase(arr.begin() + min_index);
return arr;
}
728x90
반응형
'프로그래머스 C++ > Level.1' 카테고리의 다른 글
프로그래머스 Level.1 내적 (0) | 2024.03.20 |
---|---|
프로그래머스 Level.1 가운데 글자 가져오기 (0) | 2023.12.26 |
프로그래머스 Level.1 없는 숫자 더하기 (1) | 2023.11.13 |
프로그래머스 Level.1 음양 더하기 (0) | 2023.11.12 |
프로그래머스 Level.1 콜라츠 추측 (0) | 2023.10.21 |