728x90
728x90
풀이
queue를 이용해서 pop과 push를 반복하면서 맨 마지막값이 0 아래가 될 때까지 반복한다.
count값은 5를 초과하면 사이클을 한 바퀴 돈 거니 1로 다시 바꿔준다.
#include <algorithm>
#include <iostream>
#include <queue>
using namespace std;
int main() {
// 테케가 몇개인지 안나와있어 당황 ,,
for (int i = 0; i < 10; i++) {
int num;
cin >> num; // 몇 번째인지
queue <int> q;
for (int j = 0; j < 8; j++) {
int tmp;
cin >> tmp;
q.push(tmp);
}
int minus = 1;
while (true) {
if (q.back() > 0) { // 맨 뒷 숫자 확인
int first_num = q.front();
q.pop();
if (first_num - minus <=0 ) {
q.push(0);
}
else {
q.push(first_num - minus);
minus++;
}
}
else {
break;
}
if (minus > 5) minus = 1; // 사이클 바뀔 때
} // while
cout << "#" << num<<" ";
for (int i = 0; i < 8; i++) {
int first_num = q.front();
cout << first_num << " ";
q.pop();
}
cout << endl;
}
return 0;
}
728x90
728x90
'Algorihtm > SWEA' 카테고리의 다른 글
C++ SWEA 1983. 조교의 성적 매기기 (0) | 2023.11.07 |
---|---|
C++ SWEA 1859. 백만 장자 프로젝트 (0) | 2023.11.03 |
C++ SWEA 2805. 농작물 수확하기 (1) | 2023.11.03 |
C++ SWEA 3282. 0/1 Knapsack (0) | 2023.11.03 |
C++ SWEA 1208. [S/W 문제해결 기본] 1일차 - Flatten (0) | 2023.11.01 |