강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

hibernation님의 프로필 이미지
hibernation

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

속도문제에 대해서 궁금한 것이 있습니다!

작성

·

151

0

46번 멀티테스킹을 C++로 풀어보았는데요, 채점 폴더에서 4번째 부터 타임리미트가 떠요 ㅠㅠ

그래서 궁금증이 생겼습니다.

deque을 사용하면 index를 사용해서 원소에 접근할 때 일반 배열보다 더 오래 걸리나요? 

그게 아니라면, 어느 부분에서 더 느려져서 타임리미트가 뜨는 건가요?

#include<iostream>
#include<deque>
#include<algorithm>

using namespace std;

#define endl '\n'

int main(void) {

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    
    int nkisum = 0;
    cin >> n;
    deque<intarr(n);
    for (i = 0i < ni++) {
        cin >> arr[i];
        sum += arr[i];
    }

    i = -1;
    cin >> k;
    if (sum <= k) {
        cout << -1;
        return 0;
    }
    
    while (k) {
        i++;
        if (i == ni = 0;

        if (arr[i] > 0) {
            //cout << i << " ";
            k -= 1;
            arr[i]--;
        }
    }

    while (1) {
        i++;
        if (i == ni = 0;
        if (arr[i] == 0continue;
        else break;
        
    }
    cout << i+1;
    

    return 0;
}

답변 1

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

deque도 vector 처럼 배열기반이라 똑같습니다. 제 컴퓨터에서 채점해보니 100점 나옵니다.

hibernation님의 프로필 이미지
hibernation

작성한 질문수

질문하기