문제 출처 - Baekjoon Online Judge
문제는 여기
[문제]
프로야구팀 울림 제미니스는 오늘도 졌다. 이번에는 스타트링크 걸리버스의 4번타자가 끝내기 홈런을 쳐서 졌다. 울림 제미니스의 열렬한 팬인 지수는 속으로 화를 참으며 어떤 선수 때문에 졌는지 생각해보았다. 지수는 팀이 역전패를 했다면 불펜 투수의 책임이고, 그렇지 않다면 타자와 선발 투수의 책임이라고 생각했다.
지수는 오늘 경기에서 울림이 어떻게 졌는지 생각해보려 했지만, 기분이 너무 더러워서 뭘 할 의욕이 나지 않았다. 지수를 도와 오늘 경기에서 울림 제미니스가 역전패를 했는지 구하는 프로그램을 작성하여라. 역전패가 성립하려면 경기 도중 울림 제미니스가 이기고 있는 순간이 있어야 한다.
[입력]
첫 번째 줄에는 9개의 정수가 주어지는데, 오늘 경기에서 울림 제미니스가 1회 초, 2회 초, ..., 9회 초에 낸 득점이 주어진다.
두 번째 줄에도 9개의 정수가 주어지는데, 스타트링크 걸리버스가 1회 말, 2회 말, ..., 9회 말에 낸 득점이 주어진다.
한 팀이 한 회에 낸 득점은 모두 0 이상 20 이하이며, 스타트링크 걸리버스의 총 득점이 울림 제미니스의 총 득점보다 많다.
경기는 1회 초->1회 말->2회 초->...->9회 초->9회 말 순서로 진행된다.
[출력]
만약 울림 제미니스가 역전패를 했다면 'Yes'를 출력한다.
그렇지 않으면 'No'를 출력한다.
[풀이]
1. 배열에 값들을 입력받아준다.
2. 1번팀의 점수를 추가하고 각 팀의 총점수를 비교한다.
3. 2번팀의 점수를 추가하고 각 팀의 총점수를 비교한다.
4. 2. 또는 3. 에서 이기고 1번팀이 이기는 경우가 발생한다면 플래그를 true로 준다.
5. 플래그가 true이고, 1번팀이 졌다면 Yes 아니라면 No를 출력해준다.
[접근]
1. 역전패를 당했다는 것은 본인이 이기고 있었다는 것이므로, 이기던 때가 있는지 판단 후 마지막 결과에 따라 출력을 해주면 되겠다고 생각하였다.
[코드]
import java.io.*;
import java.util.*;
public class Main {
static int[] arr1;
static int[] arr2;
static boolean win;
static int sum1, sum2;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
arr1 = new int[9];
arr2 = new int[9];
for (int i = 0; i < 9; i++)
arr1[i] = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
for (int i = 0; i < 9; i++)
arr2[i] = Integer.parseInt(st.nextToken());
for (int i = 0; i < 9; i++) {
sum1 += arr1[i];
if (sum1 > sum2)
win = true;
sum2 += arr2[i];
if (sum1 > sum2)
win = true;
}
if (sum1 < sum2 && win)
System.out.println("Yes");
else
System.out.println("No");
}
}
'문제 풀이 > Baekjoon' 카테고리의 다른 글
[백준] G4 9252번 LCS 2 (JAVA) (0) | 2022.07.03 |
---|---|
[백준] G5 LCS (JAVA) (0) | 2022.07.02 |
[백준] S1 14716번 현수막 (JAVA) (0) | 2022.06.29 |
[백준] S5 2578번 빙고 (JAVA) (0) | 2022.06.28 |
[백준] S4 2799번 블라인드 (JAVA) (0) | 2022.06.27 |