작성한 코드는 다음과 같다.
#include <iostream>
using namespace std;
int main() {
int H, W, X, Y;
cin >> H >> W >> X >> Y;
int arr[(H+X)][(W+Y)];
for(int i=0; i<(H+X); i++) {
for(int j=0; j<(W+Y); j++) {
cin >> arr[i][j];
}
}
int n = 0;
for(int i=0; i<(H+X)/2; i++) {
for(int j=0; j<(W+Y); j++) {
if(arr[i][j] != 0) {
cout << arr[i][j] << " ";
n++;
}
}
cout << "\n";
}
int num = 0;
for(int i=0; i<(W+Y-1); i++) {
if((W+Y)-n <= i) {
cout << arr[(H+X)/2][i] - arr[0][num] << " ";
num++;
}
else
cout << arr[(H+X)/2][i] << " ";
}
return 0;
}
기본으로 제공되는 예제는 맞게 출력했지만, 결과는 틀렸습니다가 나왔다.
수정한 코드는 다음과 같다.
생각해보니 X만큼 Y만큼 이동하는 거기때문에 for문의 조건을 그에 맞게 조금 바꿔주어야 했다.
#include <iostream>
using namespace std;
int main() {
int H, W, X, Y;
cin >> H >> W >> X >> Y;
int arr[(H+X)][(W+Y)];
for(int i=0; i<(H+X); i++) {
for(int j=0; j<(W+Y); j++) {
cin >> arr[i][j];
}
}
int n = 0;
for(int i=0; i<X; i++) {
for(int j=0; j<W; j++) {
cout << arr[i][j] << " ";
n++;
}
cout << "\n";
}
int num = 0;
for(int i=X; i<H; i++) {
for(int j=0; j<W; j++) {
if(j < Y) {
cout << arr[i][j] << " ";
}
else {
cout << arr[i][j] - arr[0][num] << " ";
num++;
}
}
}
return 0;
}
이 코드도 역시 틀렸다는 결과가 나왔다.
다른 코드들을 보니까 거의 비슷한데 뭔가 어딘선가 논리에 오류가 있는 듯 하다...
'백준' 카테고리의 다른 글
백준 2606 바이러스, c++ (0) | 2024.02.25 |
---|---|
백준 2644 촌수계산, c++ (0) | 2024.02.23 |
백준 5054 주차의 신, c++ (0) | 2024.02.22 |
백준 2023 신기한 소수, c++ (0) | 2024.02.18 |
백준 2229번: 조 짜기, c++ (0) | 2024.02.17 |