728x90
개요
https://school.programmers.co.kr/learn/courses/30/lessons/42862#
체감 난이도 BOJ기준 B1 정도 . . ?
본문
그리디로 풀었다.
여벌의 체육복을 가진 학생이 인접해있으면 누적해서 빌려줄 수 있을 것이라고 생각했는데, 그런것도 없어서 엄청 간단했다.
코드
#include <string>
#include <vector>
using namespace std;
int solution(int n, vector<int> lost, vector<int> reserve) {
int answer = 0;
// 1 ~ n
vector<int> student(n+2);
for(size_t i=1; i<=n; i++)
student[i] = 1;
for(size_t i : lost)
student[i]--;
for(size_t i : reserve)
student[i]++;
for(size_t i=1; i<=n; i++)
{
if(student[i] == 0)
{
for(int nIdx = i-1 ; nIdx <= i+1; nIdx+=2)
{
if(student[nIdx] > 1)
{
student[nIdx]--;
student[i]++;
break;
}
}
}
if(student[i]>0) answer++;
}
return answer;
}
'알고리즘&자료구조 > 문제' 카테고리의 다른 글
[BOJ/3015] 오아시스 재결합 (C++) (2) | 2023.11.14 |
---|---|
[BOJ/22953번] 도도의 음식 준비 (C++/이분탐색) (1) | 2023.09.18 |
[BOJ/2230번] 수 고르기 (C++/투포인터) (0) | 2023.09.16 |
[프로그래머스] 요격시스템 (C++) (2) | 2023.07.08 |
[BOJ/26154번] 한양 가왕 (C++/애드 혹) (2) | 2023.06.06 |