※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 11916번 문제인 볼질이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/11916
11916번: 볼질
5월 5일 ‘방긋 스마일스’와의 어린이날 프로야구 경기에서 ‘GA 아인타즈’의 감독 성균이는 테스트 겸으로 창석이를 선발 투수로 등판시켰다. 그러나 창석이는 스트라이크를 못 던지는 치명
www.acmicpc.net
창석이가 공을 하나 던질 때마다 경기가 어떻게 진행되는지를 직접 시뮬레이션하는 코드를 작성해 문제를 해결하자.
이 시뮬레이션의 구현을 위해 1루, 2루 및 3루에 주자가 있는지를 저장해둘 변수, 현재 누적되어 있는 '볼'의 개수를 저장할 변수 및 지금까지 실점한 점수를 기록할 변수를 만들자. 그리고 지문에 주어진 규칙에 맞추어 위 변수들을 적절히 변경해 문제를 해결하자.
폭투를 던지면서 총 '볼'의 개수가 4개가 되었을 때 일어나는 상황을 유의해 구현하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int Q;
int base1, base2, base3;
int cnt, ans;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> Q;
while (Q--) {
int x; cin >> x;
if (x == 1) cnt++;
else if (x == 2) cnt = 4;
else {
cnt++;
if (base3) base3 = 0, ans++;
if (base2) base2 = 0, base3 = 1;
if (base1) base1 = 0, base2 = 1;
}
if (cnt == 4) {
cnt = 0;
if (base1) {
if (base2) {
if (base3) {
base3 = 0, ans++;
}
base2 = 0, base3 = 1;
}
base1 = 0, base2 = 1;
}
base1 = 1;
}
}
cout << ans;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 13116 // C++] 30번 (0) | 2024.04.14 |
---|---|
[BOJ 6511 // C++] Black and white painting (0) | 2024.04.13 |
[BOJ 27108 // C++] Ordered Fractions (0) | 2024.04.11 |
[BOJ 25955 // C++] APC는 쉬운 난이도 순일까, 아닐까? (0) | 2024.04.10 |
[BOJ 12971 // C++] 숫자 놀이 (0) | 2024.04.09 |