※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 2303번 문제인 숫자 게임이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/2303
2303번: 숫자 게임
N명이 모여 숫자 게임을 하고자 한다. 각 사람에게는 1부터 10사이의 수가 적혀진 다섯 장의 카드가 주어진다. 그 중 세 장의 카드를 골라 합을 구한 후 일의 자리 수가 가장 큰 사람이 게임을 이
www.acmicpc.net
다섯 장의 카드를 받았을 때 세 수의 합의 일의자리가 가장 크게 만드는 사람이 이기는 게임이다.
a b c d e의 다섯 개의 숫자가 있을 때, 세 개의 숫자를 고르는 방법은 다음과 같은 열가지임을 이용하여 별다른 지식 없이 문제를 해결할 수 있다.
a b c
a b d
a b e
a c d
a c e
a d e
b c d
b c e
b d e
c d e
가장 큰 결과를 갖는 사람이 여럿인 경우 그 중 마지막에 나온 사람을 출력해야 한다는 점에 유의하여 구현하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int mx = 0, idx = 0;
int a, b, c, d, e;
int N; cin >> N;
for (int i = 1; i <= N; i++) {
cin >> a >> b >> c >> d >> e;
int tmp = 0;
tmp = max(tmp, (a + b + c) % 10);
tmp = max(tmp, (a + b + d) % 10);
tmp = max(tmp, (a + b + e) % 10);
tmp = max(tmp, (a + c + d) % 10);
tmp = max(tmp, (a + c + e) % 10);
tmp = max(tmp, (a + d + e) % 10);
tmp = max(tmp, (b + c + d) % 10);
tmp = max(tmp, (b + c + e) % 10);
tmp = max(tmp, (b + d + e) % 10);
tmp = max(tmp, (c + d + e) % 10);
if (mx <= tmp) {
mx = tmp;
idx = i;
}
}
cout << idx;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 19941 // C++] 햄버거 분배 (0) | 2021.12.27 |
---|---|
[BOJ 19939 // C++] 박 터뜨리기 (0) | 2021.12.26 |
[BOJ 22021 // C++] 자동분무기 (0) | 2021.12.24 |
[BOJ 2514 // C++] 자동분무기 (0) | 2021.12.24 |
[BOJ 2513 // C++] 통학버스 (0) | 2021.12.23 |