본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 14582 : 오늘도 졌다

반응형

https://www.acmicpc.net/problem/14582

 

14582번: 오늘도 졌다

첫 번째 줄에는 9개의 정수가 주어지는데, 오늘 경기에서 울림 제미니스가 1회 초, 2회 초, ..., 9회 초에 낸 득점이 주어진다. 두 번째 줄에도 9개의 정수가 주어지는데, 스타트링크 걸리버스가 1회

www.acmicpc.net

구현 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

재미니스의 점수 jeminis, 스타트링크 팀의 점수 startlink, 역전패 현황 stat, 매 회마다 점수를 저장할 curJScore, curSScore를 선언 후 회당 점수를 입력받습니다.

📔 풀이과정

매 회마다 상황을 판별하기 위해 for loop를 수행합니다.

1. 매회초의 jeminis의 점수를 curJScore에 더해줍니다.

2. x회초에 점수가 재미니스가 더 높으면 이기고 있는 상황이라고 판단합니다. 따라서 그 경우에는 이기고 있는 상황이라는 의미에서 stat의 값을 1로 저장합니다.

3. 매회말의 startlink의 점수를 curSScore에 더해줍니다.

4. 이기고 있는 상황(stat == 1)이며 매회말의 startlink누적 점수가 더 높으면 역전을 당황한 상황이므로 stat의 값을 2로 저장합니다.

📔 정답출력

stat이 2라면 역전패를 당했으므로 "Yes"를 아니라면 "No"를 출력합니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;
int jeminis[10], startlink[10], stat, curJScore, curSScore;
int main(){
    for(int i = 1; i <= 9; i++) cin >> jeminis[i];
    for(int i = 1; i <= 9; i++) cin >> startlink[i];
    for(int i = 1; i <= 9; i++) {
        curJScore += jeminis[i];
        if(curJScore > curSScore) stat = 1;
        curSScore += startlink[i];
        if(curJScore < curSScore && stat == 1) stat = 2;
    }
    if(stat == 2) cout << "Yes";
    else cout << "No";
}