안녕하세요! 오늘은 프로그래머스 레벨1문제 체육복 문제를 풀어보았습니다!
이번에도 정렬이 들어가 알고리즘을 인클루드해서 사용했습니다!
흠... 이번문제는 이상하게 안풀려서 고생을 좀 했는데요! 바로 윗줄에서 말씀드린 정렬이 없어서 생긴 문제였습니다!
정렬이 되지 않아 최대한으로 빌릴수 있는 체육복 수가 아니였던 것으로 결론이 났습니다!
다들 문제 푸실때 예외상황에 대한 인지를 정렬과 관련해서 한번 더 생각하는것도 좋은 방법일 듯합니다!
나머지는 그냥 일반적인 문제 풀이 방법이였습니다!
그리고 이 문제가 그리디 알고리즘이랑 관련이 있는지 잘 모르겠네요 ㅎㅎ...(제가 초보라서 그런듯합니다 ㅠㅠ)
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(int n, vector<int> lost, vector<int> reserve) {
int answer = 0;
sort(lost.begin(), lost.end());
sort(reserve.begin(), reserve.end());
int reserveArray[32] = {0,};
int size = reserve.size();
for (int i = 0; i < size; i++){
reserveArray[reserve[i]] = 1;
}
size = lost.size();
answer = n - size;
for (int i = 0; i < size; i++){
if(reserveArray[lost[i]] == 1) {
reserveArray[lost[i]] = 0;
answer+=1;
lost[i] = -1;
}
}
for (int i = 0; i < size; i++){
if (lost[i] == -1) continue;
if(reserveArray[lost[i]-1] == 1) {
reserveArray[lost[i]-1] = 0;
answer+=1;
}
else if(reserveArray[lost[i]+1] == 1) {
reserveArray[lost[i]+1] = 0;
answer+=1;
}
}
return answer;
}
'Algorithm Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스] 약수의 개수와 덧셈, 3진법 뒤집기 (0) | 2021.12.01 |
---|---|
[프로그래머스] 폰켓몬, 실패율 (0) | 2021.11.30 |
[프로그래머스] 코딩테스트 연습 완전탐색 모의고사 (0) | 2021.11.29 |
[프로그래머스] 코딩테스트 연습 정렬 K번째수 (0) | 2021.11.27 |
[프로그래머스] 코딩테스트 연습 해시 완주하지 못한 선수 (0) | 2021.11.27 |