반응형
문제는 다음과 같습니다.
코딩테스트 연습 - 제일 작은 수 제거하기 | 프로그래머스 (programmers.co.kr)
코딩테스트 연습 - 제일 작은 수 제거하기
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1
programmers.co.kr
풀이 코드는 다음과 같습니다.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> arr) {
vector<int> answer;
int tmp = arr[0];
int check=0;
for(int i{0};i<arr.size();i++)
{
if(tmp>=arr[i])
{
tmp=arr[i];
check=i;
}
}
arr.erase(arr.begin()+check);
if(arr.empty())
{
arr.push_back(-1);
}
answer=arr;
return answer;
}
처음에는 정렬을 해서 맨 앞에 위치한 값을 빼려고 하다가 순서가 달라지기 때문에 가장 기본적인 방법으로 하나씩 찾아보면서 가장 작은 값을 찾는 방법으로 찾았습니다.
이후 특정 순번에 있는 원소를 빼기 위해 순번 체크를 위한 check 변수를 선언하여 빼주었고
만약 벡터가 비어있다면 -1을 추가하여 대입하였습니다.
반응형
'프로그래머스 Lv.1 코딩테스트' 카테고리의 다른 글
[프로그래머스 Lv.1] K번째 수 (0) | 2022.02.16 |
---|---|
[프로그래머스 Lv.1] 최대공약수와 최소공배수 (0) | 2022.02.16 |
[프로그래머스 Lv.1] 콜라츠 추측 (0) | 2022.02.16 |
[프로그래머스 Lv.1] 평균 구하기 (0) | 2022.02.09 |
[프로그래머스 Lv.1] 하샤드 수 (0) | 2022.02.09 |