http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1925&sca=9060
구현 문제입니다.
문제부터 간단하게 요약해보면, 폭탄을 가진 사람을 퀴즈를 풀게 되고, 맞출 경우엔 다음 사람에게, 틀리거나 패스하는 경우에는 다음 문제 또한 풀어야 합니다. 210초~211초 사이에 폭탄이 터지고, 처음 폭탄을 가진 사람, 퀴즈의 수, 각 퀴즈에서 의사결정을 하는데 걸린 시간이 주어질 때, 폭탄이 터질 때 폭탄을 가지고 있던 사람의 번호를 출력해야 합니다.
<Solution>
실제로 원형을 나머지를 구하는 형태로 돌게 하여, 구현하면 됩니다.
코드는 아래와 같습니다.
#include <iostream>
using namespace std;
#define MAXN (100)
int K;//처음 폭탄을 가진 사람 번호
int N;//퀴즈 개수
int T[MAXN+10];//걸린 시간
char Z[MAXN+10];//정답 여부
void InputData(){
cin >> K;
cin >> N;
for(int i=0; i<N; i++){
cin >> T[i] >> Z[i];
}
}
int sol(){
int cur_ppl = K-1;
int cur_time = 0;
int cur_index = 0;
while(cur_time < 211 || cur_index < N){
if(Z[cur_index] == 'T' && cur_time+T[cur_index] < 211){
cur_ppl = (cur_ppl+1)%8;
}
cur_time+= T[cur_index];
cur_index++;
}
return cur_ppl+1;
}
int main(){
int ans = -1;
InputData();//입력받는 부분
//여기서부터 작성
ans = sol();
cout << ans << endl;//출력하는 부분
return 0;
}
반응형
'코딩테스트 > C++ 문제풀이' 카테고리의 다른 글
[백준] 싸이클 (0) | 2022.11.27 |
---|---|
[정올] 숫자근(Digit Root) (0) | 2022.11.27 |
[정올] 등산로 찾기 (0) | 2022.11.27 |
[정올] 귀가 (0) | 2022.11.27 |
[백준] Roadblock (0) | 2022.11.27 |