게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
알고리즘 시간초과 질문입니다
게시물ID : programmer_18803짧은주소 복사하기
작성자 : 훗날닭집사장
추천 : 0
조회수 : 677회
댓글수 : 14개
등록시간 : 2016/10/23 18:53:17
옵션
  • 본인삭제금지
 
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>
#include <queue>
 
using namespace std;
 
int main()
{
 FILE *fp = fopen("input.txt", "r");
 queue <int> Q;
 int n, w, L, ai;
 int i;
 int weightsum = 0;
 int count = 0;
 int time = 0;
 fscanf(fp, "%d %d %d", &n, &w, &L);
 
 for (i = 0; i < n; i++)
 {
  fscanf(fp, "%d", &ai);
  while (1)
  {
   time++;
   if (count == w)
   {
    count--;
    weightsum -= Q.front();
    Q.pop();
   }
 
   if (weightsum + ai > L)
   {
    weightsum += 0;
    Q.push(0);
    count++;
   }

   else if (weightsum + ai <= L)
   {
    weightsum += ai;
    Q.push(ai);
    count++;
    break;
   }
  }
 }
 time += w;
 printf("%d", time);
}
 
위 문제를 queue를 구현해서 풀어봤는데요.
 
채점서버에 제출하니 시간초과라서 제출이 안되네요..--;; 어디서 시간을 많이 잡아먹는걸까요?
 
항상 많은 도움 주셔서 감사합니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호