1. 문제 정보
https://level.goorm.io/exam/43061/%EA%B3%84%EC%88%98%EA%B8%B0-%EB%A7%8C%EB%93%A4%EA%B8%B0/quiz/1
구름LEVEL
난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.
level.goorm.io
2. 풀이 과정
각 숫자판의 최댓값, 초기값을 두 배열 A, B에 자릿수에 맞게 저장한다.
increaseNum 함수 : k만큼 최댓값에 맞게 B 배열을 증가시키는 함수
1. 초기값 벡터 B의 마지막 인덱스의 값을 +1씩 증가시킨다.
2. 배열 B를 뒤에서부터 확인하며, 배열 A의 해당 인덱스보다 큰 요소를 0으로 초기화하고 바로 앞 인덱스의 값 +1
3. 첫 번째 인덱스는 0으로 만든다면 앞 인덱스의 값을 +1 할 필요가 없음
3. C++ 정답 코드
#include <iostream>
#include <vector>
using namespace std;
void inputVector(vector<int>& vec, int n);
void increaseNum(vector <int> &A, vector <int> &B, int n);
int main() {
int n;
cin >> n;
vector<int> A, B;
inputVector(A, n);
inputVector(B, n);
int k;
cin >> k;
for(int i =0; i< k; i++){
increaseNum(A, B, n);
}
for(auto&i : B)
cout << i;
}
void inputVector(vector<int>& vec, int n) {
vec.resize(n);
for (auto& i : vec) {
cin >> i;
}
}
void increaseNum(vector <int> &A, vector <int> &B, int n) {
B[n-1]++;
for(int i = n-1; i >= 0; i--)
{
if(B[i] > A[i])
{
B[i] = 0;
if(i != 0)
B[i - 1]++;
}
else
return;
}
}
'🏆 PS(Problem Solving) > groomLevel' 카테고리의 다른 글
[C++] groomLevel(구름) 이진수 만들기 (0) | 2024.06.14 |
---|---|
[C++] groomLevel(구름) [KOI 2017] 딱지놀이 (0) | 2024.06.13 |
[C++] groomLevel(구름) 인공지능 청소기 (0) | 2024.06.13 |
[C++] groomLevel(구름) 소금물 농도 구하기 (1) | 2024.06.13 |