λ¬Έμ μ€λͺ
μ μ¬μκ°μ λλμ΄ λ€μ΄, μΌλΆ νμμ΄ μ²΄μ‘볡μ λλλΉνμ΅λλ€. λ€νν μ¬λ² 체μ‘λ³΅μ΄ μλ νμμ΄ μ΄λ€μκ² μ²΄μ‘볡μ λΉλ €μ£Όλ € ν©λλ€. νμλ€μ λ²νΈλ 체격 μμΌλ‘ λ§€κ²¨μ Έ μμ΄, λ°λ‘ μλ²νΈμ νμμ΄λ λ°λ‘ λ·λ²νΈμ νμμκ²λ§ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€. μλ₯Ό λ€μ΄, 4λ² νμμ 3λ² νμμ΄λ 5λ² νμμκ²λ§ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€. 체μ‘λ³΅μ΄ μμΌλ©΄ μμ μ λ€μ μ μκΈ° λλ¬Έμ 체μ‘볡μ μ μ ν λΉλ € μ΅λν λ§μ νμμ΄ μ²΄μ‘μμ μ λ€μ΄μΌ ν©λλ€.
μ 체 νμμ μ n, 체μ‘볡μ λλλΉν νμλ€μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ lost, μ¬λ²μ 체μ‘볡μ κ°μ Έμ¨ νμλ€μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ reserveκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, 체μ‘μμ μ λ€μ μ μλ νμμ μ΅λκ°μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ νμ¬ν
- μ 체 νμμ μλ 2λͺ μ΄μ 30λͺ μ΄νμ λλ€.
- 체μ‘볡μ λλλΉν νμμ μλ 1λͺ μ΄μ nλͺ μ΄νμ΄κ³ μ€λ³΅λλ λ²νΈλ μμ΅λλ€.
- μ¬λ²μ 체μ‘볡μ κ°μ Έμ¨ νμμ μλ 1λͺ μ΄μ nλͺ μ΄νμ΄κ³ μ€λ³΅λλ λ²νΈλ μμ΅λλ€.
- μ¬λ² 체μ‘λ³΅μ΄ μλ νμλ§ λ€λ₯Έ νμμκ² μ²΄μ‘볡μ λΉλ €μ€ μ μμ΅λλ€.
- μ¬λ² 체μ‘볡μ κ°μ Έμ¨ νμμ΄ μ²΄μ‘볡μ λλλΉνμ μ μμ΅λλ€. μ΄λ μ΄ νμμ 체μ‘볡μ νλλ§ λλλΉνλ€κ³ κ°μ νλ©°, λ¨μ 체μ‘λ³΅μ΄ νλμ΄κΈ°μ λ€λ₯Έ νμμκ²λ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€.
μ μΆλ ₯ μ
n lost reserve return
5 | [2, 4] | [1, 3, 5] | 5 |
5 | [2, 4] | [3] | 4 |
3 | [3] | [1] | 2 |
μ μΆλ ₯ μ μ€λͺ
μμ #1
1λ² νμμ΄ 2λ² νμμκ² μ²΄μ‘볡μ λΉλ €μ£Όκ³ , 3λ² νμμ΄λ 5λ² νμμ΄ 4λ² νμμκ² μ²΄μ‘볡μ λΉλ €μ£Όλ©΄ νμ 5λͺ
μ΄ μ²΄μ‘μμ
μ λ€μ μ μμ΅λλ€.
μμ #2
3λ² νμμ΄ 2λ² νμμ΄λ 4λ² νμμκ² μ²΄μ‘볡μ λΉλ €μ£Όλ©΄ νμ 4λͺ
μ΄ μ²΄μ‘μμ
μ λ€μ μ μμ΅λλ€.
νμ΄
01. λͺ¨λ νμμ 체μ‘볡 κ°μκ° λ€μ΄κ° 벑ν°λ₯Ό λ§λ€κ³ 0μΌλ‘ μ΄κΈ°ννλ€.
1λ² νμκ³Ό nλ² νμμ μ, λ€ νμμ ν¬ν¨νμ¬(μ€μ λ‘λ μ¬μ©λμ§ μμ) n+2 ν¬κΈ°μ 벑ν°λ₯Ό λ§λ λ€.
02. 체μ‘볡μ μμ΄λ²λ¦° νμμ -1λ‘, μ¬λΆμ 체μ‘λ³΅μ΄ μλ νμμ +1λ‘ κ°μ λ£μ΄μ€λ€.
03. μ 체 forλ¬Έμ λλ©΄μ 체μ‘볡μ μμ΄λ²λ¦° νμμ΄ μλ κ²½μ°μλ, μλ€ νμμ 체μ‘볡 κ°μλ₯Ό νμΈνμ¬ λΉλ €μ€ μ μλμ§ νμΈνλ€. λ§μ½ λΉλ €μ€ μ μλ€λ©΄ λΉλ €μ€ νμκ³Ό λ°μ νμμ 체μ‘볡 κ°μλ₯Ό 0μΌλ‘ λ°κΏμ€λ€.
04. λ§μ§λ§μΌλ‘ forλ¬Έμ λλ©΄μ 체μ‘λ³΅μ΄ μλ νμμ μλ₯Ό μΌλ€.
#include <string>
#include <vector>
using namespace std;
int solution(int n, vector<int> lost, vector<int> reserve) {
int answer = 0;
vector<int> student(n+2, 0);
for (int i:lost){
student[i]--;
}
for (int i:reserve){
student[i]++;
}
for (int i=1; i<=n; i++){
if (student[i] < 0){
if (student[i-1] == 1){
student[i]++;
student[i-1]--;
}
else if (student[i+1]==1){
student[i]++;
student[i+1]--;
}
}
}
for (int i=1;i<=n;i++){
if (student[i] >= 0)
answer++;
}
return answer;
}
'β¨ Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[κ°λ ] DFSμ BFS (0) | 2021.08.24 |
---|---|
[νλ‘κ·Έλλ¨Έμ€/C++] νκ² λλ²(DFS) (0) | 2021.08.24 |
[λ°±μ€/C++] 11399λ² : ATM (0) | 2021.08.16 |
[λ°±μ€/C++] 11047λ² : λμ 0 (0) | 2021.08.16 |
[λ°±μ€/C++] 1931λ² : νμμ€ λ°°μ (0) | 2021.08.15 |
λκΈ