λ¬Έμ
<λ¬Έμ μ€λͺ >
μ΄μ€ μ°μ μμ νλ λ€μ μ°μ°μ ν μ μλ μλ£κ΅¬μ‘°λ₯Ό λ§ν©λλ€.
λͺ λ Ήμ΄μμ ν(λμ΄)
I μ«μ | νμ μ£Όμ΄μ§ μ«μλ₯Ό μ½μ ν©λλ€. |
D 1 | νμμ μ΅λκ°μ μμ ν©λλ€. |
D -1 | νμμ μ΅μκ°μ μμ ν©λλ€. |
μ΄μ€ μ°μ μμ νκ° ν μ°μ° operationsκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, λͺ¨λ μ°μ°μ μ²λ¦¬ν ν νκ° λΉμ΄μμΌλ©΄ [0,0] λΉμ΄μμ§ μμΌλ©΄ [μ΅λκ°, μ΅μκ°]μ return νλλ‘ solution ν¨μλ₯Ό ꡬνν΄μ£ΌμΈμ.
<μ νμ¬ν>
- operationsλ κΈΈμ΄κ° 1 μ΄μ 1,000,000 μ΄νμΈ λ¬Έμμ΄ λ°°μ΄μ λλ€.
- operationsμ μμλ νκ° μνν μ°μ°μ λνλ
λλ€.
- μμλ “λͺ λ Ήμ΄ λ°μ΄ν°” νμμΌλ‘ μ£Όμ΄μ§λλ€.- μ΅λκ°/μ΅μκ°μ μμ νλ μ°μ°μμ μ΅λκ°/μ΅μκ°μ΄ λ μ΄μμΈ κ²½μ°, νλλ§ μμ ν©λλ€.
- λΉ νμ λ°μ΄ν°λ₯Ό μμ νλΌλ μ°μ°μ΄ μ£Όμ΄μ§ κ²½μ°, ν΄λΉ μ°μ°μ 무μν©λλ€.
https://programmers.co.kr/learn/courses/30/lessons/42628
λ¬Έμ νμ΄
dequeλ₯Ό μ΄μ©ν΄μ μ΅λκ°μ μμ ν λλ pop_back(), μ΅μκ°μ μμ ν λλ push_back()μ ν΄μ£Όλ©΄ λ©λλ€.
μμ€μ½λ
// μ΄μ€μ°μ μμν
#include <iostream>
#include <vector>
#include <deque>
#include <string>
#include <algorithm>
using namespace std;
vector<int> solution(vector<string> operations) {
vector<int> answer = { 0, 0 };
deque<int> dq;
char op; // λͺ
λ Ήμ΄
int num; // λ°μ΄ν°
for (int i = 0; i < operations.size(); i++) {
op = operations[i][0];
num = stoi(operations[i].substr(2));
// νμ μ£Όμ΄μ§ μ«μλ₯Ό μ½μ
if (op == 'I') {
dq.push_back(num);
sort(dq.begin(), dq.end());
}
// νκ° λΉμ΄μμ§ μμ κ²½μ° κ°μ μμ
else if(!dq.empty()) {
// μ΅λκ° μμ
if (num == 1)
dq.pop_back();
// μ΅μκ° μμ
else
dq.pop_front();
}
}
// νκ° λΉμ΄μμ§ μμΌλ©΄ [μ΅λκ°, μ΅μκ°] answerμ μ μ₯
if (!dq.empty()) {
answer[0] = dq.back();
answer[1] = dq.front();
}
return answer;
}
곡λΆν κ²μ μ 리ν λ΄μ©μ λλ€. μμ ν λΆλΆμ΄ μλ€λ©΄ μλ €μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€ :)
728x90
'Algorithm > νλ‘κ·Έλλ¨Έμ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€ / C++] μ«μ μΌκ΅¬ νμ΄ (0) | 2020.07.30 |
---|---|
[νλ‘κ·Έλλ¨Έμ€ / C++] μμ μ°ΎκΈ° νμ΄ (11) | 2020.07.30 |
[νλ‘κ·Έλλ¨Έμ€ / C++] λμ€ν¬ 컨νΈλ‘€λ¬ νμ΄ (0) | 2020.07.24 |
[νλ‘κ·Έλλ¨Έμ€ / C++] λΌλ©΄κ³΅μ₯ νμ΄ (0) | 2020.07.24 |
[νλ‘κ·Έλλ¨Έμ€ / C++] λ λ§΅κ² νμ΄ (0) | 2020.07.24 |