λ¬Έμ
https://school.programmers.co.kr/learn/courses/30/lessons/155651
λ΄ νμ΄
μμ μκ°μ κΈ°μ€μΌλ‘ μμ½μ μ€λ¦μ°¨μ μ 리νλ€.
λ°©μ λ°°μ νλ©΄μ λ©ν°μ μ λ€μ μμ½μκ° λ€μ΄μ¬ μ μλ μκ°μ μ μ₯νλ€. ( μμ½ μ’ λ£ μκ° + 10 )
μ μ μ¬μ©νλ μ΄μ λ μκ°μ μ€λ¦μ°¨μ μ λ ¬νμ¬ λ€μ μμ½μκ° μ΅λν 빨리 λ€μ΄μ¬ μ μλ μκ°μ ꡬνκΈ° μ½κ²νκΈ° μν¨μ΄λ€. κ·Έ μ€μμ λ©ν°μ μ μ΄μ©ν μ΄μ λ μμ½ μκ°μ΄ μ€λ³΅λ μ μκΈ° λλ¬Έμ΄λ€.
λ€μ μμ½μλ₯Ό λ°μ λ, λ©ν°μ μ μ μ₯λ λ°°μ κ°λ₯ν μκ° μ€ μμ½μκ° μ μ€ κ°λ₯ν μκ°μ΄ μλ€λ©΄ λ©ν°μ μμ ν΄λΉ μκ°μ μμ νκ³ μ μμ½μμ λ§μΆ° λ°°μ κ°λ₯ν μκ°μ κ°±μ νλ€. μμ½μκ° μ μ€ κ°λ₯ν μκ°μ΄ μλ€λ©΄ λ©ν°μ μμ μμ ν κ±° μμ΄ λ€μ μμ½μκ° λ€μ΄μ¬ μ μλ μκ°μ μΆκ°νλ©΄ λλ€.
#include <string>
#include <vector>
#include <algorithm>
#include <set>
#include <iostream>
using namespace std;
// μκ° μ€λ¦μ°¨μ μ λ ¬
bool comp(vector<string> t1, vector<string> t2)
{
int hour_1 = stoi(t1[0].substr(0, 2));
int hour_2 = stoi(t2[0].substr(0, 2));
int min_1 = stoi(t1[0].substr(3));
int min_2 = stoi(t2[0].substr(3));
if(hour_1 != hour_2)
return (hour_1 < hour_2);
else
return (min_1 < min_2);
}
int solution(vector<vector<string>> book_time) {
int answer = 0;
multiset<int> available_times; // λ°© λ°°μ κ°λ₯ μκ° μ μ₯
// μμ μκ°μ κΈ°μ€μΌλ‘ μμ½μ μ λ ¬νλ€
sort(book_time.begin(), book_time.end(), comp);
for(const auto& b : book_time)
{
// νμ¬ μμ½μ 체ν¬μΈ/체ν¬μμ μκ°
int in_time = stoi(b[0].substr(0, 2)) * 60 + stoi(b[0].substr(3));
int out_time = stoi(b[1].substr(0, 2)) * 60 + stoi(b[1].substr(3));
// λ°°μ κ°λ₯ν λ°©μ΄ μλμ§ μ²΄ν¬νλ€
auto iter = available_times.begin();
for(; iter != available_times.end(); ++iter)
{
if(*iter <= in_time)
{
available_times.erase(iter); // λ°°μ κ°λ₯ν λ°©μ΄ μλ€λ©΄ κ°±μ μ μν΄ λ©ν°μ
μμ μ κ±°νλ€
break;
}
}
// λ°© λ°°μ κ°λ₯ μκ°μ μΆκ°νλ€
available_times.insert(out_time + 10);
}
answer = available_times.size();
return answer;
}
'π₯οΈ Study Note > Coding Test' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€]level.1 - νμ€λ μ(C++) (0) | 2023.06.20 |
---|---|
[νλ‘κ·Έλλ¨Έμ€]level.2 - νλ°° μμ(C++) (0) | 2023.06.19 |
[νλ‘κ·Έλλ¨Έμ€]level.2 - μμ΄ λλ§μκΈ°(C++) (0) | 2023.06.18 |
[νλ‘κ·Έλλ¨Έμ€]level.2 - μμ μ§κΏ(C++) (1) | 2023.06.12 |
[νλ‘κ·Έλλ¨Έμ€]level.1 - νΈλν° λ²νΈ κ°λ¦¬κΈ°(C++) (0) | 2023.06.11 |