ALGORITHM
[c++] 체육복 (Greedy)
느리님
2021. 5. 14. 10:29
https://programmers.co.kr/learn/courses/30/lessons/42862
코딩테스트 연습 - 체육복
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번
programmers.co.kr
#include <string>
#include <vector>
using namespace std;
int solution(int n, vector<int> lost, vector<int> reserve) {
int answer = 0;
int student[31];
for (int i=0; i<n+1; i++) {
student[i] = 1;
}
for (int i=0; i<(int)reserve.size(); i++) {
student[reserve[i]]++;
}
for (int i=0; i<(int)lost.size(); i++) {
student[lost[i]]--;
}
for (int i=1; i<=n; i++) {
if (student[i] == 0) {
if (i == 0 && student[i+1] == 2) {
student[i]++;
student[i+1]--;
}
else if (student[i-1] == 2) {
student[i]++;
student[i-1]--;
}
else if (i == n-1 && student[i-1] == 2) {
student[i]++;
student[i-1]--;
}
else if (student[i+1] == 2) {
student[i]++;
student[i+1]--;
}
}
}
for (int i=1; i<=n; i++) {
if (student[i] != 0) {
answer++;
}
}
return answer;
}
ㅋㅋ... 프로그래머스는 2번째를 진짜 2번째라고 한다는 것을..
2번째를 0번째 부터 시작해서 자꾸 틀렸다.. ㅠㅠ
쉬운 문제라고 해도 문제 예시를 잘 살펴보자