https://programmers.co.kr/learn/courses/30/lessons/42628
문제
입력&출력
문제해석&접근버
우선 문제에 우선순위'큐' 라서 큐를 써야하나? 라는 생각을함.
하지만 최소값, 최대값을 입력에 맞게 빼려면 (앞,뒤로) 큐로 구현하면 복잡해질 것(상황에 따라서 오름차순, 내림차순 정렬을 해야함) 예상
따라서 List로 구현!!
난이도
★★☆☆☆
다시 풀어볼만함
실수
'I' (Input) 경우, 최소/최대값 경우 총 3가지 경우가 입력이 되는데, 최소값제거->sort,최대값제거->sort 해줬는데 Input->sort를 안해주는 실수를 함
만약 Operations에서 마지막의 경우가 "I n" 라면 마지막 값 입력 후 sort를 해줘야 최대값, 최소값을 출력함.
스스코드
#include <iostream>
#include <vector>
#include <list>
#include <set>
#include <algorithm>
#include <string>
using namespace std;
vector<int> solution(vector<string> operations) {
list<int> l;
vector<int> answer;
for (int i = 0; i < operations.size(); i++)
{
string str = operations[i];
//삽입
if (str[0] == 'I')
{
string strNum = "";
int parseInt;
for (int j = 2; j < str.size(); j++)
{
strNum += str[j];
}
parseInt = stoi(strNum); //string -> int 변경함수
l.push_back(parseInt); l.sort();
}
//제거
else
{
if (str[2] == '-')
{
if (l.empty()) continue;
l.sort();
l.pop_front();
}
else
{
if (l.empty()) continue;
l.sort();
l.pop_back();
}
}
}
if(l.size() > 1 )
{
answer.push_back(l.back());
answer.push_back(l.front());
}
//만약 최대값 최소값을 구분할 수 없는 0개,1개 일 경우
else
{
answer.push_back(0);
answer.push_back(0);
}
return answer;
}
'Algorithm' 카테고리의 다른 글
[백준11559 ]C++ Puyo Puyo (0) | 2020.07.11 |
---|---|
[프로그래머스] 키패드 누르기 (0) | 2020.07.05 |
[프로그래머스] 크레인 인형뽑기 게임 c++ (0) | 2020.07.05 |
[프로그래머스Lv3] 네트워크 (0) | 2020.07.05 |
[백준 1706] 크로스워드 (C++, Java) (0) | 2020.07.05 |