#include <string>
#include <vector>
using namespace std;
int solution(int n, vector<int> lost, vector<int> reserve) {
// 체육복 있는 사람 없는 사람 따로 생각하지 말기!
int arr[31]; // 전체 학생 체육복 수
// 초기화
for(int i = 0; i < 31; i++){
arr[i] = 0;
}
// 체육복 수 벡터 저장
for(int i = 0; i < lost.size(); i++){
arr[lost[i]]--;
}
for(int i = 0; i < reserve.size(); i++){
arr[reserve[i]]++; // 여벌 가져와서 도난 당한 경우 1 아니라 0임
}
for(int i = 1; i <= n; i++){
if(arr[i] == -1) {
if(arr[i-1] == 1){
arr[i]++;
arr[i-1]--;
} else if(arr[i+1] == 1){
arr[i]++;
arr[i+1]--;
}
}
}
int cnt = 0;
for(int i = 1; i <= n; i++){
printf("%d ", arr[i]);
if(arr[i] >= 0){
cnt++;
}
}
return cnt;
}
체육복을 빌리고 가져오는 것을 한 배열에 넣어서 생각하면 쉽다. 도난과 빌리는 것도 다 ++ -- 써서... 절댓값으로 = 1 이런식으로 하면 도난당했는데 여분 가져오는 것 이런 것을 확인하기 힘들다.
머리가 많이 굳었나봐ㅜㅜ 왜 오래 생각했을까?