[백준 10409] 서버 (C#, C++) - soo:bak
작성일 :
문제 링크
설명
작업들이 순서대로 주어졌을 때, 총 시간 제한을 넘지 않는 범위 내에서 앞에서부터 최대 몇 개의 작업을 처리할 수 있는지를 계산하는 문제입니다.
접근법
전체 작업 수
와제한된 총 시간
을 입력받습니다.- 각 작업 시간을 순서대로 입력받으며,
누적 합이 제한 시간을 넘기지 않는 한 계속 작업을 수행합니다. - 누적 합이 초과되는 순간 반복을 멈추고, 지금까지 수행한 작업 수를 출력합니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
using System.Linq;
class Program {
static void Main() {
var input = Console.ReadLine().Split().Select(int.Parse).ToArray();
int n = input[0], t = input[1];
var jobs = Console.ReadLine().Split().Select(int.Parse).ToArray();
int sum = 0, count = 0;
foreach (var job in jobs) {
sum += job;
if (sum <= t) count++;
else break;
}
Console.WriteLine(count);
}
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, t; cin >> n >> t;
int sum = 0, cnt = 0;
while (n--) {
int x; cin >> x;
sum += x;
if (sum <= t) cnt++;
}
cout << cnt << "\n";
return 0;
}