https://www.acmicpc.net/problem/12842
해당문제는 알고리즘보다는 문제를 잘 읽고 예외처리를 잘해주면된다.
1. 먹기위해 집어든 튀김소보루는 제외!
2. 여러 사람이 동시에 소보루를 집는다면 번호가 작은 사람이 먼저잡는다(즉, 초당 여러사람이 잡을수가 있다.)
-> 따라서, 1,2번의 조건을 부여하면, 2중포문으로 시간을 초당진행되게하며, 그 초당시간내에 번호 작은 사람순으로 나누어 떨어지게 될때
total을 더한다.
#include<iostream>
using namespace std;
#include<stack>
int n, s,m,total,eat;
int cnt = 0, res = 0,cnt2=0;
int people[100050];
int main()
{
cin.tie(0);
ios::sync_with_stdio(false);
cin >> n >> s;
eat = n - s;
cin >> m;
for (int i = 0; i < m; i++)
{
cin >> people[i];
}
for (int i = 0; i <100000; i++) //초당 동시에 먹을때 작은번호부터임으로
{
for (int j = 0; j < m; j++)
{
if (i%people[j] == 0) //현재시간을 기준으로 나누어 떨어질때 그사람이 소보루 집음
{//먹기위해 집어든 튀김소보루는 제외하므로
total++;
if (total >= eat)
{
cout << j+1 << "\n";
return 0;
}
}
}
}
return 0;
}
'백준_문제풀이' 카테고리의 다른 글
[백준]: 2841번: 외계인의 기타연주 / Stack & pair (0) | 2018.09.26 |
---|---|
[백준]: 1918번: 후위표기식 / Stack (0) | 2018.09.23 |
[백준]: 2150번: Strongly Connected Component / 코사리주 알고리즘 (0) | 2018.09.16 |
[백준]: 2573번: 빙산 / DFS & BFS (0) | 2018.09.13 |
[백준]: 9466번: 텀 프로젝트 / DFS cycle (0) | 2018.09.08 |