반응형
출처: https://www.acmicpc.net/problem/1592
Input
5 3 2
Output
10
player[]에 공을 받은 횟수 저장합니다. (처음 1번 선수가 받은 공도 횟수에 포함됩니다.)
player = [1 0 0 0 0] (※ 인덱스를 1번부터라고 가정)
▶ 공을 3번에게 던진다 → player = [1 0 1 0 0]
▶ 공을 5번에게 던진다 → player = [1 0 1 0 1]
▶ 공을 2번에게 던진다 → player = [1 1 1 0 1]
▶ 공을 4번에게 던진다 → player = [1 1 1 1 1]
▶ 공을 1번에게 던진다 → player = [2 1 1 1 1]
▶ 공을 4번에게 던진다 → player = [2 1 1 2 1]
▶ 공을 2번에게 던진다 → player = [2 2 1 2 1]
▶ 공을 5번에게 던진다 → player = [2 2 1 2 2]
▶ 공을 3번에게 던진다 → player = [2 2 2 2 2]
▶ 공을 1번에게 던진다 → player = [3 2 2 2 2]
1번이 공을 세 번 잡았기 때문에 게임 종료
#include <iostream>
using namespace std;
int main(){
int N, M, L;
cin >> N >> M >> L;
int player[1001] = {0, };
// 처음 1번 선수에서 시작
player[1] = 1;
int idx = 1;
// 공을 던진 횟수
int answer = 0;
while(true){
if(player[idx] >= M){
cout << answer << endl;
return 0;
}
if(player[idx] % 2 == 0){
idx -= L;
if(idx <= 0) idx += N;
}
else{
idx += L;
if(idx > N) idx -= N;
}
player[idx]++;
answer++;
}
}
반응형
'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글
[BOJ] 백준 2098 외판원 순회 (0) | 2021.02.26 |
---|---|
[BOJ] 백준 2174 로봇 시뮬레이션 (0) | 2021.02.26 |
[BOJ] 백준 1526 가장 큰 금민수 (0) | 2021.02.26 |
[BOJ] 백준 9517 아이 러브 크로아티아 (0) | 2021.02.26 |
[BOJ] 백준 1022 소용돌이 예쁘게 출력하기 (0) | 2021.02.26 |
댓글