티스토리 뷰

문제 링크입니다 : https://www.acmicpc.net/problem/1655

 

1655번: 가운데를 말해요

첫째 줄에는 수빈이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 수빈이가 외치는 정수가 차례대로 주어진다. 정수는 -1

www.acmicpc.net

 

단계별 풀기에서 유형은 우선순위 큐로 되어 있는데, 우선순위 큐로 어떻게 풀어야 할 지 감지 잘 안 잡혔다. 그래서 우선순위 큐가 시간 복잡도 O(logN)을 잡아먹으니까 이분탐색으로 풀어도 될 것같아 이분탐색으로 풀었다.

 

 

#include <iostream>
#include <cstdio>
#include <queue>
#include <vector>

using namespace std;

int main() {
    int N, input;
    scanf("%d", &N);
    vector<int> v;
    vector<int>::iterator iter;
    int len;

    for(int i = 0; i < N; i++) {
        scanf("%d", &input);
        iter = lower_bound(v.begin(), v.end(), input);
        v.insert(iter, input);
        len = v.size() - 1;
        printf("%d\n", v[len / 2]);
    }

    return 0;
}

 

 

 

개발 환경 : vscode

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

 

'알고리즘 > 백준(BOJ)' 카테고리의 다른 글

백준 - 2667 단지번호붙이기  (0) 2020.06.11
백준 - 2606 바이러스  (0) 2020.06.11
백준 - 11286 절대값 힙  (0) 2020.06.11
백준 - 1927 최소 힙  (0) 2020.06.11
백준 - 1600 말이 되고픈 원숭이  (0) 2020.06.04
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함