SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
967/1000 - 뭐가 문제일깜..
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int t;
cin >> t;
for (int i = 0; i < t; i++) {
int n,m,k;
cin >> n >> m >> k;
vector<int> vec;
int num;
for (int x = 0; x < n; x++) {
cin >> num;
vec.push_back(num);
}
sort(vec.begin(), vec.end());
string result = "Possible";
long long cnt = 0;
long long boo = 0;
int flag = 0;
while (!vec.empty()) {
if (cnt == m) {
boo += k;
m += m;
}
while(!vec.empty() && vec[0] == cnt){
if ( boo > 0) {
vec.erase(vec.begin());
boo--;
}
else {
result = "Impossible";
flag++;
break;
}
}
if (flag > 0) {
break;
}
cnt++;
}
cout << "#" << i + 1 << " " << result << endl;
}
return 0;
}
- 파일로 저장해서 틀린 TC 찾기
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
using namespace std;
int main() {
ofstream fout;
fout.open("a.txt");
ifstream fin;
fin.open("input.txt");
int t;
fin >> t;
for (int i = 0; i < t; i++) {
int n, m, k;
fin >> n >> m >> k;
vector<int> vec;
int num;
for (int x = 0; x < n; x++) {
fin >> num;
vec.push_back(num);
}
sort(vec.begin(), vec.end());
string result = "Possible";
int cnt = 0;
int boo = 0;
int flag = 0;
while (!vec.empty()) {
if (cnt == m) {
boo += k;
m += m;
}
while (!vec.empty() && vec[0] == cnt) {
if (boo > 0) {
vec.erase(vec.begin());
boo--;
}
else {
result = "Impossible";
flag++;
break;
}
}
if (flag > 0) {
break;
}
cnt++;
}
fout << "#" << i + 1 << " " << result << endl;
}
fin.close();
fout.close();
return 0;
}
- (정답코드)
m+=m 이러면 말이 안됨, cnt!=0 && cnt%m==0 수정
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int t;
cin >> t;
for (int i = 0; i < t; i++) {
int n, m, k;
cin >> n >> m >> k;
vector<int> vec;
int num;
for (int x = 0; x < n; x++) {
cin >> num;
vec.push_back(num);
}
sort(vec.begin(), vec.end());
string result = "Possible";
int cnt = 0;
int boo = 0;
int flag = 0;
while (!vec.empty()) {
if (cnt!=0 && cnt % m==0)
boo += k;
while (!vec.empty() && vec[0] == cnt) {
if (boo > 0) {
vec.erase(vec.begin());
boo--;
}
else {
result = "Impossible";
flag++;
break;
}
}
if (flag > 0) {
break;
}
cnt++;
}
cout << "#" << i + 1 << " " << result << endl;
}
return 0;
}
'APS > SWEA' 카테고리의 다른 글
8659.GCD c++ (0) | 2021.11.19 |
---|---|
1216. [S/W 문제해결 기본] 3일차 - 회문2 (0) | 2021.11.19 |
12052. 부서진 타일 c++ (0) | 2021.11.09 |
2805. 농작물 수확하기 c++ (0) | 2021.11.07 |
1859. 백만 장자 프로젝트 C++ (0) | 2021.11.07 |