(TIL) 20210719

2021. 7. 19. 14:35TIL(Today I learned)

반응형

📕Facts(한 것)


  • 백준 문제 풀기
  • 운동하기
  • 스프링 도메인 파트 듣고 정리하기

 

📕Feeling(느낀 점)


 

 

7662번: 이중 우선순위 큐

입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적

www.acmicpc.net

 

백준에서 푼 꽤 재밌는 문제이다.

이름은 우선순위 큐이지만, 큐와는 전혀 관계없이 풀 수 있는 문제이다.

 

처음에는 list로 접근했다.

list로 풀면 아주 쉽게 풀리긴 하는데, 시간초과가 발생한다.(안 풀린건가...?)

 

그 다음에는 set을 사용하려 했는데, 문제에서 중복을 허용하기 때문에 사용하지 못했고

 

결국 map을 사용해서 풀었다.

 

풀이방식을 여러 방면으로 생각할 수 있게 만드는 좋은 문제였다.

더보기
#include <iostream>
#include <map>

using namespace std;


int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);

    int t;
    cin >> t;

    for(int i = 0; i < t; i++) {
        int k;
        cin >> k;
        map<long long, int> mp;
        long long  temp;
        char s;

        for(int j = 0; j < k; j++) {
            cin >> s >> temp;

            if(s == 'I') {
                auto it = mp.find(temp);
                if(it != mp.end())
                    it->second++;
                else
                    mp.insert(make_pair(temp, 0));


            } else if(s == 'D') {
                if(mp.empty())
                    continue;
                if(temp == 1) {
                   auto it = prev(mp.end());
                   if(it->second > 0)
                       it->second--;
                   else
                       mp.erase(it);

                } else {
                    auto it = mp.begin();
                    if(it->second > 0)
                        it->second--;
                    else
                        mp.erase(it);
                }
            }
        }
        if(mp.empty())
            cout << "EMPTY" << "\n";
        else
            cout << mp.rbegin()->first << " " << mp.begin() ->first << "\n";
    }
    return 0;
}

 


오늘 프로젝트를 진행하다가, 백엔드가 아닌 프론트에서 실력 부족을 느꼈다.

당장 리액트 공부 해야곘다.

📕여담


 

반응형

'TIL(Today I learned)' 카테고리의 다른 글

(TIL) 20210721  (0) 2021.07.22
(TIL) 20210720  (0) 2021.07.20
(TIL) 20210718  (0) 2021.07.19
(TIL) 20210717  (0) 2021.07.19
(TIL) 20210716  (0) 2021.07.16