728x90
반응형
진짜 까다로웠던 문제였다.
내 방식대로 도저히 답이 안나와서 같은 과 형에게 알고리즘을 물어보고 나니까 풀 수 있었던 문제다.
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int solution(int n, vector<int> lost, vector<int> reserve) {
int answer = 0;
vector<int> student(n, 1);
// studnet 배열에 각 학생의 번호와 체육복 갯수를 초기화
for (int i = 0; i < lost.size(); i++)
{
student[lost[i] - 1]--;
}
for (int i = 0; i < reserve.size(); i++)
{
student[reserve[i] - 1]++;
}
for (int i = 0; i < n; i++)
{
if (student[i] == 2 && student[i - 1] == 0 && i >= 1)
{
student[i]--;
student[i - 1]++;
}
if (student[i] == 2 && student[i + 1] == 0 && i <= n)
{
student[i]--;
student[i + 1]++;
}
}
for (int i = 0; i < student.size(); i++)
{
if (student[i] >= 1)
{
answer++;
}
}
return answer;
}
728x90
반응형
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[Level 1, C++] 완주하지 못한 선수 (0) | 2022.07.04 |
---|---|
[Level 1, C] 숫자 문자열과 영단어 (0) | 2022.07.04 |
[Level 1, C++] 최대공약수와 최소공배수 (0) | 2022.07.04 |
[Level 1, C++] 시저 암호 (0) | 2022.07.04 |
[Level 1, C++] 자연수 뒤집어 배열로 만들기 (0) | 2022.07.04 |