※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 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

+ Recent posts