250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- SQL
- nightroutine
- 원서읽기
- sw expert academy
- readingbook
- 원서읽자
- 코테 대비
- 알고리즘 문제
- sw expert
- 직무면접
- BFS
- PyQt
- D4
- English
- 쉬운 알고리즘 문제
- englishbook
- 코테 준비
- 코딩테스트
- 코테
- 프로그래머스
- STUDYENGLISH
- 완전탐색
- swexpertacademy
- 삼성
- 알고리즘
- dfs
- 백준
- MySQL
- the midnight library
- 원서
Archives
- Today
- Total
시나브로
9778. 카드 게임 본문
728x90
Solution
그냥 문제 그대로 코딩하면 Pass 할 수 있습니다. 저는 계산을 줄이고자 하다가 오류를 많이 만났습니다.
- 데이터를 받으면서 list[카드의 수의 값을 가집니다. / 인덱스는 카드의 크기입니다]의 배열에서 갯수를 감소시켜줍니다. -> 각 크기에 따른 남은 카드의 수를 알 수 있습니다.
- 현재 승현이가 가진 카드의 총합을 알기위해 sum을 계산해줍니다.
- 이제 sum 변수는 승현이가 21을 만들기 위해 남은 크기를 의미하는 변수로 의미가 변경됩니다.
- list를 sum까지 돌면서 승현이가 뽑을 수 있는 카드 수를 s로 계산합니다. -> 여기서 sum까지 도는 이유는 list의 인데스는 카드의 크기이기 때문입니다.
- g 변수를 계산해줍니다. g는 승현이가 뽑으면 안되는 카드의 갯수입니다.
- 대소관계를 구별하여 정답을 출력해주면 됩니다.
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;
int main(void) {
int tc = 0;
cin >> tc;
for (int p = 0; p < tc; p++) {
int amount = 0;
cin >> amount;
int sum = 0;
int list[] = { 0,0,4,4,4,4,4,4,4,4,15,4 };
int box = 0;
for (int i = 0; i < amount; i++) {
cin >> box;
list[box]--;
sum += box;
}
sum = 21 - sum;
int s = 0;
int g = 0;
for (int i = 0;i <= sum; i++) {
s+=list[i];
}
g = 52 - amount - s;
cout << "#" << p + 1<<" ";
if (g>= s)
cout << "STOP"<<endl;
else
cout << "GAZUA"<<endl;
}
return 0;
}
728x90
'알고리즘 > SW Expert Academy' 카테고리의 다른 글
1949. [모의 SW 역량테스트] 등산로 조성 (0) | 2020.12.02 |
---|---|
9780. 외계인 침공 (0) | 2020.05.25 |
1859. 백만 장자 프로젝트 (0) | 2020.05.17 |
[D5] 9015. 배열의 분할 (0) | 2020.03.18 |
[D3] 9229. 한빈이와 Spot Mart (0) | 2020.03.10 |
Comments