https://www.acmicpc.net/problem/21866
21866번: 추첨을 통해 커피를 받자
첫 번째 줄에 9개의 정수가 주어진다. 각 정수는 $0$ 이상 $1\,000$ 이하의 정수다. 각 정수는 해당 학생이 각 문제에서 얻은 점수를 의미한다.
www.acmicpc.net
(21.08.06)
21866번: 추첨을 통해 커피를 받자 - C언어 풀이
[문제]
연세대학교 컴퓨터과학과 프로그래밍 경진대회는 2015년부터 지금까지 총 6번 진행되었다.
지금까지 진행했던 대회의 수상자는 대부분 고학번 학생들이었다. 이러한 이유로 국렬이는 신입생들에게 알고리즘 문제 풀이에 대한 동기를 부여하기 위해 2021 연세대학교 신입생 프로그래밍 경진대회를 열게 되었다.
국렬이는 가능한 많은 사람들이 대회에 많이 참여하는 것을 원하기 때문에, 대회에 참가한 학생들 중 수상자를 제외한 나머지 사람들에게 추첨을 통해서 커피를 나누어주려고 한다. 대회에 신청만 하고 참여하지 않는 학생들이 커피를 받는 상황을 막기 위해 총점이 일정 점수 이상인 학생들만을 대상으로 추첨을 하려고 한다.
2021 연세대학교 신입생 프로그래밍 경진대회는 총 9문제로 구성되어 있으며, 각 문제 당 최대 점수는 100점, 100점, 200점, 200점, 300점, 300점, 400점, 400점, 500점이다. 만약 받은 점수의 합계가 100점 이상이라면 추첨 대상자가 된다.
몇몇 참가자들이 상금을 받기 위해서 자신들의 점수를 조작하는 상황이 발생했다. 만약 어떤 학생이 각 문제에서 받은 점수 중, 그 문제의 최대 점수를 넘어가는 것이 한 개라도 있다면 그 학생을 해커로 간주하려고 한다. 해커로 간주된 학생에게는 커피를 무조건 나눠줄 예정이다.
어떤 학생이 각 문제에서 얻은 점수가 주어졌을 때, 해당 학생이 추첨 대상자인지, 추첨 대상자가 아닌지, 혹은 해커인지를 구분해보자.
[입력]
첫 번째 줄에 9개의 정수가 주어진다. 각 정수는 0 이상 1000 이하의 정수다. 각 정수는 해당 학생이 각 문제에서 얻은 점수를 의미한다.
100 0 0 0 0 0 0 0 0
|
0 50 0 0 0 0 0 0 0
|
101 101 201 201 301 301 401 401 501
|
[출력]
커피 추첨 대상자가 아니라면 none을 출력하고, 해커라면 hacker를 출력한다. 그 외의 경우에는 draw를 출력한다.
draw
|
none
|
hacker
|
[소스코드]
#include <stdio.h>
// [baekjoon] 21866번 - 추첨을 통해 커피를 받자
int main() {
int x[9];
int sum = 0;
for (int i = 0; i < 9; i++) {
scanf("%d", &x[i]);
sum += x[i];
}
if (x[0] > 100 || x[1] > 100) printf("hacker");
else if (x[2] > 200 || x[3] > 200) printf("hacker");
else if (x[4] > 300 || x[5] > 300) printf("hacker");
else if (x[6] > 400 || x[7] > 400) printf("hacker");
else if (x[8] > 500) printf("hacker");
else if (sum<100) printf("none");
else printf("draw");
}
무식하게 하나하나 비교해서 풀어본 첫 번째 풀이.
별로 깔끔하지 못해서 다시 풀어보았다.
#include <stdio.h>
// [baekjoon] 21866번 - 추첨을 통해 커피를 받자
int main() {
int x[9], y[9] = { 100,100,200,200,300,300,400,400,500 };
int sum = 0;
for (int i = 0; i < 9; i++) {
scanf("%d", &x[i]);
if (x[i] > y[i]) {
printf("hacker");
return 0;
}
sum += x[i];
}
if (sum<100) printf("none");
else printf("draw");
}
비교할 배열을 만들어서 다시 풀어봤다.
이래도 별로 깔끔해 보이지는 않지만 그럭저럭 만족.
'학습 정리 > 👨💻 PS Study' 카테고리의 다른 글
[C] 백준 21867번 - Java Bitecode (0) | 2022.07.06 |
---|---|
[C] 백준 11557번 - Yangjojang of The Year (0) | 2022.07.06 |
[C] 백준 1924번 - 2007년 (0) | 2022.07.06 |
[C] 백준 1065번 - 한수 (0) | 2022.06.22 |
[C] 백준 8958번 - OX퀴즈 (0) | 2022.06.22 |