2484번 - 주사위 네개
은근 헷갈리는 문제였다.
배열을 1~6까지 만들고, 나온 갯수만큼 배열을 ++해준다.
그리고 4개 나온경우, 3개 나온경우, 2개 2개 경우를 체크해준다. 그러면서 1이 나온 값은 계속 sum에 갱신을 한다.
그리고 for문을 빠져나왔을 때 2개 나온 경우를 체크해주고, 최대값과 비교해준다.
<정답 코드>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #include<iostream> #include<vector> #include<queue> using namespace std; int main() { //freopen("input.txt", "r", stdin); ios::sync_with_stdio(false); cin.tie(NULL); int n, MAX = 0; cin >> n; for (int i = 0; i < n; i++) { int num[7] = { 0, }, sum = 0, c1=0, c2=0; int a, b, c, d; cin >> a >> b >> c >> d; num[a]++, num[b]++, num[c]++, num[d]++; for (int j = 1; j <= 6; j++) { if (num[j] == 4) { sum = 50000 + j * 5000; break; } if (num[j] == 3) { sum = 10000 + j * 1000; break; } if (num[j] == 2 && c1 != 0) { c2 = j; sum = 2000 + c1 * 500 + c2 * 500; break; } if (num[j] == 2 && c1==0) { c1 = j; } if (num[j] == 1) { sum = 100 * j; } } if (c1 != 0 && c2 == 0) { sum = 1000 + 100 * c1; } if (sum > MAX) { MAX = sum; } } cout << MAX << "\n"; return 0; } | cs |
반응형