본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 21866 : 추첨을 통해 커피를 받자

반응형

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

 

21866번: 추첨을 통해 커피를 받자

첫 번째 줄에 9개의 정수가 주어진다. 각 정수는 $0$ 이상 $1\,000$ 이하의 정수다. 각 정수는 해당 학생이 각 문제에서 얻은 점수를 의미한다.

www.acmicpc.net

if문을 사용해보는 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

일차원 점수 배열 score, 최대 점수 배열 limit, 상태 state, 전체 점수 totalScore를 선언 후 적절히 입력받습니다.

📔 풀이과정

9개의 점수 정보에 대해 for loop를 수행합니다. 누적 점수를 totalScore에 추가해줍니다. 만약 최대 점수를 넘었다면 state = 2로 만들어줍니다.

📔 정답출력

state가 0이면 none

state가 1이면 draw

state가 2면 hacker

입니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;
int score[9], limit[9] = {100, 100, 200, 200, 300, 300, 400, 400, 500}, state = 1, totalScore;
int main(){
  for(int i = 0; i < 9; i++) cin >> score[i];
  for(int i = 0; i < 9; i++){
    if(score[i] > limit[i]) state = 2;
    totalScore += score[i];
  }
  if(totalScore < 100) state = 0;
  if(totalScore >= 100 && state == 1) cout << "draw";
  else if(state == 2) cout << "hacker";
  else cout << "none";
}

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.