https://school.programmers.co.kr/learn/courses/30/lessons/42862
λ¬Έμ μ€λͺ
μ μ¬μκ°μ λλμ΄ λ€μ΄, μΌλΆ νμμ΄ μ²΄μ‘볡μ λλλΉνμ΅λλ€. λ€νν μ¬λ² 체μ‘λ³΅μ΄ μλ νμμ΄ μ΄λ€μκ² μ²΄μ‘볡μ λΉλ €μ£Όλ € ν©λλ€. νμλ€μ λ²νΈλ 체격 μμΌλ‘ λ§€κ²¨μ Έ μμ΄, λ°λ‘ μλ²νΈμ νμμ΄λ λ°λ‘ λ·λ²νΈμ νμμκ²λ§ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€. μλ₯Ό λ€μ΄, 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λͺ μ΄ μ²΄μ‘μμ μ λ€μ μ μμ΅λλ€.
λ΄ ν΄λ΅
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(int n, vector<int> lost, vector<int> reserve) {
int answer = 0;
vector<int> check(n, 1);
sort(lost.begin(), lost.end());
sort(reserve.begin(), reserve.end());
// μμ΄λ²λ¦° 체μ‘볡 체ν¬
for(const auto& l : lost)
--check[l-1];
// μ¬λΆμ 체μ‘볡 체ν¬
for(const auto& r : reserve)
++check[r-1];
for(int i = 0; i < n; ++i)
{
//체μ‘λ³΅μ΄ μμ κ²½μ°
if(check[i] == 0)
{
// μ λ²νΈ μ¬λμκ² λΉλ¦¬κΈ°
if(i-1 >= 0 && check[i-1] == 2)
{
--check[i-1];
++check[i];
continue;
}
// λ· λ²νΈ μ¬λμκ² λΉλ¦¬κΈ°
if(i+1 < n && check[i+1] == 2)
{
--check[i+1];
++check[i];
}
}
}
// 체μ‘λ³΅μ΄ μλ μ¬λ μ μΈκΈ°
for (const auto& a : check)
if (a > 0)
answer++;
return answer;
}
'π₯οΈ Study Note > Coding Test' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νλ‘κ·Έλλ¨Έμ€ / level.3 / λ±κ΅£κΈΈ(C++) (0) | 2023.05.09 |
---|---|
[λ°±μ€] 2775λ² : λΆλ νμ₯μ΄ λ ν μΌ(C++) (0) | 2023.05.08 |
νλ‘κ·Έλλ¨Έμ€ / level.1 / λλ¨Έμ§κ° 1μ΄ λλ μ μ°ΎκΈ°(C++) (0) | 2023.05.06 |
νλ‘κ·Έλλ¨Έμ€ / level.2 / μ§μ§μ΄ μ κ±°νκΈ°(C++) (0) | 2023.05.06 |
νλ‘κ·Έλλ¨Έμ€ / level.2 / λ€μ ν° μ«μ(C++) (0) | 2023.05.01 |